Redis Jedis

相信大家有着同样的问题,Jedis是什么呢?下面为你详细解答关于Redis Jedis的内容。

Jedis到底是什么?

在常见命令中,使用各种Redis自带客户端的命令行方式访问Redis服务。 而在实际工作中却需要用到Java代码才能访问,使用第三方jar包 :Jedis就能方便地访问Redis的各种服务了。

Jedis.jar架包下载地址

点击跳转连接进行下载jedis.jar

Jedis应用示例

示例

import redis.clients.jedis.Jedis;public class Redis {public static void main(String[] args) {Jedis jedis = new Jedis("localhost");jedis.set("num", "numbers");String value = jedis.get("num");System.out.println(value);}}

输出

number

RedisManyCommands

此项目可以帮助大家更好的理解使用jedis.jar包,包含各种不同数据类型的运用方式。
我们需要在项目里添加junit的jar包,在上方的下载地址jedis.rar里包含。

示例

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;import org.junit.Before;
import org.junit.Test;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;  public class RedisManyCommands {  JedisPool pool;  Jedis jedis;  @Before public void setUp() {  jedis = new Jedis("localhost");  }  /** * Redis存储初级的字符串 **/ @Test public void testBasicString(){  //-----添加数据----------  jedis.set("name","meepo");//向key-->name中放入了value-->meepo  System.out.println(jedis.get("name"));//执行结果:meepo  //-----修改数据-----------  //1、在原来基础上修改  jedis.append("name","dota");   //很直观,类似map 将dota append到已经有的value之后  System.out.println(jedis.get("name"));//执行结果:meepodota  //2、直接覆盖原来的数据  jedis.set("name","poofu");  System.out.println(jedis.get("name"));//执行结果:poofu  //删除key对应的记录  jedis.del("name");  System.out.println(jedis.get("name"));//执行结果:null  /** * mset相当于 * jedis.set("name","meepo"); * jedis.set("dota","poofu"); */ jedis.mset("name","meepo","dota","poofu");  System.out.println(jedis.mget("name","dota"));  }  /** * jedis操作Map */ @Test public void testMap(){  Map<String,String> user=new HashMap<String,String>();  user.put("name","meepo");  user.put("pwd","password");  jedis.hmset("user",user);  //取出user中的name,执行结果:[meepo]-->注意结果是一个泛型的List  //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数  List<String> rsmap = jedis.hmget("user", "name");  System.out.println(rsmap);  //删除map中的某个键值  
//        jedis.hdel("user","pwd");  System.out.println(jedis.hmget("user", "pwd")); //因为删除了,所以返回的是null  System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数1  System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true  System.out.println(jedis.hkeys("user"));//返回map对象中的所有key  [pwd, name]  System.out.println(jedis.hvals("user"));//返回map对象中的所有value  [meepo, password]  Iterator<String> iter=jedis.hkeys("user").iterator();  while (iter.hasNext()){  String key = iter.next();  System.out.println(key+":"+jedis.hmget("user",key));  }  }  /** * jedis操作List */ @Test public void testList(){  //开始前,先移除所有的内容  jedis.del("java framework");  // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有System.out.println(jedis.lrange("java framework",0,-1));  //先向key java framework中存放三条数据  jedis.lpush("java framework","spring");  jedis.lpush("java framework","struts");  jedis.lpush("java framework","hibernate");  //再取出所有数据jedis.lrange是按范围取出,  // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有  System.out.println(jedis.lrange("java framework",0,-1));  }  /** * jedis操作Set */ @Test public void testSet(){  //添加  jedis.sadd("sname","meepo");  jedis.sadd("sname","dota");  jedis.sadd("sname","poofu");  jedis.sadd("sname","noname");//移除noname  jedis.srem("sname","noname");  System.out.println(jedis.smembers("sname"));//获取所有加入的value  System.out.println(jedis.sismember("sname", "meepo"));//判断 meepo 是否是sname集合的元素  System.out.println(jedis.srandmember("sname"));  System.out.println(jedis.scard("sname"));//返回集合的元素个数  }  @Test public void test() throws InterruptedException {  //keys中传入的可以用通配符  System.out.println(jedis.keys("*")); //返回当前库中所有的key  [sose, sanme, name, dota, foo, sname, java framework, user, braand]  System.out.println(jedis.keys("*name"));//返回的sname   [sname, name]  System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象  删除成功返回1 删除失败(或者不存在)返回 0  System.out.println(jedis.ttl("sname"));//返回给定key的有效时间,如果是-1则表示永远有效  jedis.setex("timekey", 10, "min");//通过此方法,可以指定key的存活(有效时间) 时间为秒  Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5  System.out.println(jedis.ttl("timekey"));   //输出结果为5  jedis.setex("timekey", 1, "min");        //设为1后,下面再看剩余时间就是1了  System.out.println(jedis.ttl("timekey"));  //输出结果为1  System.out.println(jedis.exists("key"));//检查key是否存在  System.out.println(jedis.rename("timekey","time"));  System.out.println(jedis.get("timekey"));//因为移除,返回为null  System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min  //jedis 排序  //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)  jedis.del("a");//先清除数据,再加入数据进行测试  jedis.rpush("a", "1");  jedis.lpush("a","6");  jedis.lpush("a","3");  jedis.lpush("a","9");  System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]  System.out.println(jedis.sort("a")); //[1, 3, 6, 9]  //输入排序后结果  System.out.println(jedis.lrange("a",0,-1));  }  
}

了解更多关注我哟!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础线性规划实现(matlab,lingo)

目录 一、本次所需解的问题 二、matlab解题 1&#xff09;语法 2&#xff09;数学思维 3&#xff09;matlab解题 运行结果&#xff1a; 三、lingo解题 lingo解题如下&#xff1a; 运行结果&#xff1a; 最后&#xff1a; 一、本次所需解的问题 需解出下面该线性规划问…

cwntos linux kde桌面,Centos如何安装KDE的桌面

其实KDE其实在初次安装系统的时候就可以选择&#xff0c;我下面是进入系统后的安装方法&#xff1a;第一步&#xff1a;检查KDE首先查看自己是否安装了KDE# yum grouplist在grouplist的输出结果中的“Installed Groups:”部分中&#xff0c;如果你能找到“X Window System”和“…

【OpenCV 例程 300篇】239. Harris 角点检测之精确定位(cornerSubPix)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】239. Harris 角点检测之精确定位&#xff08;cornerSubPix&#xff09; 角是直线方向的快速变化。角点通常被定义为两条边的交点&#xff0c;或者说角点的邻域应该具有两个不同区域的不同方向的边界…

Redis Spring集成

近来Spring可谓是火了一把&#xff0c;那麽我们应该进行Redis缓存和Spring集成的呢&#xff1f;&#xff1f; 下面我们将讲解Spring对Redis的支持即我们如何在Spring项目中访问Redis。 项目如下 redis.properties 这里指定连接 Redis 服务器的相关信息 #ip地址 redis.host…

基础线性规划实现---python

目录 一、问题 何为线性规划问题&#xff1a; 二、python进行求解 1.通过观察matlab解线性规划步骤进行求解 2.python求解步骤 1&#xff09;求解用到的模块&#xff08;scipy 和 numpy&#xff09;&#xff1a; 2&#xff09;对 max z2x13x2-5x3 该问题确定c如下&…

linux查看mongodb的ip地址,[转载]在MongoDB的shell中显示服务器当前IP

不久前发生一起严重的事故&#xff0c;误删了生产MongoDB服务器上的一个collection&#xff0c;由于没有定时备份&#xff0c;导致几天的数据丢失。认真反省之后&#xff0c;写下这篇文章&#xff0c;希望能给大家一些警示。过程当时我正双开两个终端窗口&#xff0c;分别用mon…

【OpenCV 例程 300篇】240. OpenCV 中的 Shi-Tomas 角点检测

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】240. OpenCV 中的 Shi-Tomas 角点检测 角是直线方向的快速变化。角点通常被定义为两条边的交点&#xff0c;或者说角点的邻域应该具有两个不同区域的不同方向的边界。 角是高度有效的特征。角点检测…

多元统计分析1

第一章 多元正态分布 文章目录 1.1 多元分布的基本概念 1.1.1 随机向量 1.1.2 分布函数与密度函数 联合分布函数&#xff1a; 联合密度函数&#xff1a; 条件密度函数&#xff1a; 分量的独立性&#xff1a; 1.1.3 随机向量的数字特征 1.随机向量的均值 2、随机…

Java并发容器和框架

ConcurrentHashMap 我们为什么要使用 ConcurrentHashMap呢&#xff1f; 原因有三&#xff1a; 并发编程中HashMap会导致死循环&#xff1b;HashTable效率又非常低&#xff1b;ConcurrentHashMap的锁分段技术可有效提升并发访问率。在并发编程使用HashMap会导致死循环。 在多线…

linux mysql 8安装教程,MySQL8系列安装与配置教程(Linux环境)

以CentOS8为例进行讲解。关闭firewalld关闭&#xff1a; systemctl stop firewalld开机禁用 &#xff1a; systemctl disable firewalld使用root用户按照如下步骤执行yum install -y wget选择一个目录&#xff0c;并进行下载wget https://dev.mysql.com/get/mysql80-community…

【OpenCV 例程 300篇】241. 尺度不变特征变换(SIFT)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】241. 尺度不变特征变换&#xff08;SIFT&#xff09; 6.4.1 简介 尺度不变特征转换算法&#xff08;Scale-invariant feature transform&#xff0c;SIFT&#xff09;是图像处理中经典的局部特征描…

整数线性规划实现(matlab分枝界定法)

文章目录 一、本次问题 1.利用第一天所学知识求解&#xff1a; 2.本题理解&#xff1a; &#xff08;1&#xff09;分支界定法 背景&#xff1a; 基本理论&#xff08;解题步骤&#xff09;&#xff1a; 求解实现1&#xff1a; 1.第一步 2.第二步 3.第三步 4.第四步…

linux opencv gtk 没窗口,OpenCV GTK+2.x error

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效&#xff0c;请关闭广告屏蔽插件后再试):问题:I had installed OpenCV following these steps ().After trying to compile one examples,i got this error :OpenCV Error: Unspecified error (The function …

硬盘分区

我们买回一台全新的笔记本的时候&#xff0c;我们会发现里面只有一个硬盘&#xff0c;这个时候为了满足我们的需求我们往往要对硬盘进行分区&#xff0c;那麽如何正确的对硬盘进行分区的呢&#xff1f; 下面教大家如何正确的对电脑硬盘进行分区操作。 操作方法 1、在桌面上找…

python入门:Anaconda和Jupyter notebook的安装与使用

文章目录 一、安装和使用Anaconda 1、anaconda是什么&#xff1f; 2、为什么需要安装anaconda&#xff1f; 3、如何安装anaconda&#xff1f; 通过官网下载页面 开源软件下载 安装步骤&#xff1a; 4、jupyter汉化 5、如何管理包&#xff1f; 1.列出已安装的包 2.安装…

arm linux sms,基于arm处理器的手机短消息加密系统 encryption system for sms based on arm.pdf...

基于arm处理器的手机短消息加密系统 encryption system for sms based on arm第 22卷 第 期 电子测量与仪器学报 Vol.22 No.224 - -200S年 月 JOURNAL OFELECTRONICMEASUREMENTANDINSTRUMENT 95基 于 ARM处理器 的手机短消息加密 系统杨浩森 刊世新 徐 继友电子科技大学计算机科…

前端开发中游览器的兼容问题总结

首先&#xff0c;为什么各种浏览器会产生兼容性问题&#xff1f; 产生这个问题的主要原因是市面上的浏览器的种类很多&#xff0c;但由于不同的浏览器的内核不一致&#xff0c;从而导致各个浏览器对网页的解析就产生了差异。 对于解决浏览器兼容性问题&#xff0c;我们要从三…

非线性规划(1)

目录 一、非线性规划的定义 二、非线性规划的模型 三、非线性规划函数 四、线性不等式约束 五、线性不等式和等式约束 六、带有非线性约束的求最值 七、非线性约束 总结&#xff1a; 一、非线性规划的定义 前面我们学了线性规划&#xff0c;整数规划&#xff0c;我们可…

北京化工大学通信工程linux,北京化工大学通信工程专业解读

通信工程专业1.专业的内涵是什么&#xff1f;它的未来怎样发展&#xff1f;通信工程与电子信息工程、电子信息科学与技术同属电子信息科学与工程类&#xff0c;学科基础理论基本相同&#xff0c;没有本质区别&#xff0c;且通信工程与电子信息工程的专业内涵相互交融&#xff0…

2021数维杯国际赛数学建模-A题思路-新冠疫情

本思路转载于数模孵化园 此大佬日常更新各种建模比赛的思路&#xff01;&#xff01; 先看赛题翻译 2020年初&#xff0c;新型冠状病毒疫情&#xff08;或称COVID-19&#xff09;在全球迅速蔓延。根据世 界卫生组织2021年7月31日的报告&#xff0c;新型冠状病毒疫情对人类的…