151
社区成员
发帖
与我相关
我的任务
分享什么是jedis是Redis官方推荐的java连接开发工具!使用java操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!
测试
1、导入对应的依赖
<dependencies>
<!-- 导入jedis包 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
2、编码测试:
连接数据库
操作命令
断开连接
package com.zxy;
import redis.clients.jedis.Jedis;
public class TestPing {
public static void main(String[] args) {
//1、new Jedis 对象即可
/*
new Jedis("127.0.0.1",6379);
第一个参数:访问地址
第二个参数:端口号
*/
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
}
}
输出:

对key操作的命令
public static void main(String[] args) {
//1、new Jedis 对象即可
/*
new Jedis("127.0.0.1",6379);
第一个参数:访问地址
第二个参数:端口号
*/
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
System.out.println("清空数据:"+jedis.flushDB());
System.out.println("判断某个键是否存在:"+jedis.exists( "username"));
System.out.println("新增< 'username' , 'kuangshen'>的键值对:"+jedis.set( "username","xuyang"));
System.out.println("新增< 'password' , ' password'>的键值对:"+jedis.set( "password" , "password"));
System.out.print("系统中所有的键如下: ");
Set<String> keys = jedis.keys( "*");
System.out.println(keys) ;
System.out.println("删除键password: "+jedis.del("password" )) ;
System.out.println("判断键password是否存在: "+jedis.exists("password"));
System.out.println("查看键username所存储的值的类型: "+jedis.type("username"));
System.out.println("随机返回key空间的一个: "+jedis.randomKey());
System.out.println("重命名key: "+jedis.rename( "username" ,"name" ));
System.out.println("取出改后的name: "+jedis.get( "name" ) ) ;
System.out.println("按索引查询:"+jedis.select( 0));
System.out.println("删除当前选择数据库中的所有key: "+jedis.flushDB());
System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
System.out.println("删除所有数据库中的所有key: "+jedis.flushAll());
}
对String操作的命令
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
System.out.println("======================增加数据=======================");
System.out.println(jedis.set( "key1" , "value1"));
System.out.println(jedis.set( "key2" , "value2"));
System.out.println("删除键key2 : "+jedis.del("key2"));
System.out.println("获取键key2 : "+jedis.get( "key2" ));
System.out.println("修改key1 : "+jedis.set( "key1","value1Changed"));
System.out.println("获取key1的值: "+jedis.get("key1" )) ;
System.out.println("在key3后面加入值: "+jedis.append("key3" ,"End"));
System.out.println( "key3的值:"+jedis.get( "key3")) ;
System.out.println("增加多个键值对:"+jedis.mset("key01" , "value1" , "key02" ,"value02","key03","value03"));
System.out.println("获取多个键值对:"+jedis.mget("key01" , "key02" , "key03"));
System.out.println("删除多个键值对:"+jedis.del("key01" , "key02"));
System.out.println("获取多个键值对:"+jedis.mget("key01" , "key02" , "key03"));
jedis.flushDB();
System.out.println("==========新增键值对防止覆盖原先值=========");
System.out.println(jedis.setnx( "key1", "value1"));
System.out.println(jedis.setnx( "key2", "value2-new"));
System.out.println(jedis.get( "key1" ));
System.out.println(jedis.get ( "key2" ));
System.out.println("==========新增键值对并设置有效时间============");
System.out.println(jedis.setex("key3", 2,"value3"));
System.out.println(jedis.get( "key3" ));
try{
TimeUnit.SECONDS.sleep(3 );
}catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(jedis.get ( "key3" ) ) ;
System.out.println("==========获取原值,更新为新值========");
System.out.println(jedis.getSet( "key2", "key2GetSet"));
System.out.println(jedis.get ( "key2" ));
System.out.println("获得key2的值的字串:"+jedis.getrange("key2",2,4));
}
对List操作的命令
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.flushDB();
System.out.println("========添加一个list========" );
jedis.lpush(" collections", "ArrayList", "Vector", "Stack","HashMap","weakHashMap","LinkedHashMap","");
jedis.lpush("collections","HashSet");
jedis.lpush("colllections","TreeSet");
jedis.lpush("collections","TreeMap");
//-1代表倒数第一个元素,0代表第一个元素
System.out.println("collections的内容: "+jedis.lrange("collections",0,-1));
System.out . println("collections区间0-3的元素:"+jedis.lrange("collections" ,0,3));
System.out.println( "=============================" );
//删除列表指定的值,第二个参数为删除的个数(有重复时),后add进去的值先被删,类似于出栈
System.out .println("删除指定元素个数:"+jedis.lrem("collections",2,"HashMap"));
System.out.println( " collections的内容: "+jedis.lrange("collections",0,-1));
//截断元素
System.out.println("删除下表0-3区间之外的元素:"+jedis.ltrim("collections",0,3));
System.out.println( " collections的内容: "+jedis.lrange("collections",0,-1));
System.out .println("collections列表出栈(左端): "+jedis.lpop("collections"));
System.out.println( "collections的内容: "+jedis.lrange("collections",0,-1));
System.out .println(" collections添加元素,从列表右端,与lpush相对应:"+jedis.rpush("collections","EnumMap"));
System.out. println(" collections的内容: "+jedis.lrange("collections",0,-1));
System.out.println( " collections列表出栈(右端):"+jedis.rpop("collections"));
System.out.println( " collections的内容: "+jedis.lrange("collections",0,-1));
System.out.println("修改collections指定下标1的内容: "+jedis.lset("collections",1,"LinkedHashMap"));
System.out.println(" collections的内容: "+jedis.lrange("collections",0,-1));
System.out.println("==============================" );
System.out.println("collections的长度:"+jedis.llen("collections"));
System.out.println("获取collections下标为2的元素: "+jedis.lindex("collections",2));
System.out.println( "=============================" );
jedis.lpush("sortedList","3","6","2","0","7","4");
System.out .println( " sortedList排序前:"+jedis.lrange("sortedList",0,-1));
System.out.println(jedis.sort("sortedList"));
System.out.println("sortedList排序后:"+jedis.lrange("sortedList",0,-1));
}
对Set操作的命令
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.flushDB();
System.out.println(" ===========向集合中添加元素(不重复)===========");
System.out.println(jedis.sadd("eleSet","e1" , "e2" , " e4" ," e3" , "e0" , " e8" ,"e7" ,"e5"));
System.out.println(jedis.sadd("eleSet","e6"));
System.out.println("eleset的所有元素为: "+jedis.smembers("eleSet"));
System.out.println("删除一个元素e0: "+jedis.srem("eleSet","e0"));
System.out.println("eleSet的所有元素为: "+jedis.smembers("eleSet"));
System.out.println("删除两个元素e7和e6: "+jedis. srem("eleSet","e7" , " e6"));
System.out.println("随机的移除集合中的一个元素:"+jedis.spop("eleSet"));
System.out.println("eleSet中包含元素的个数:"+jedis.scard("eleSet"));
System.out.println("e1是否在eleSet中: "+jedis.sismember("eleSet","e1"));
System.out.println("====================================");
System.out.println(jedis.sadd("eleSet2","e1" , "e2" , " e4" , "e3" , " eo" , " e8" ));
//从eleSet1移动元素e1到eleSet3中
System.out.println("将eleset1中删除e1并存入eleset3中:"+jedis.smove("eleSet1"," eleSet3"," e1"));
System.out.println("将eleSet1中删除e2并存入eleset3中:"+jedis.smove("eleSet1","eleSet3","e2"));
System.out.println("eleSet1中的元素:"+jedis.smembers( "eleSet1"));
System.out.println("==================集合运算===================");
System.out.println("eleSet1中的元素:"+jedis.smembers("eleSet1"));
System.out.println("eleSet1和eleSet2的交集: "+jedis.sinter("eleSet1", "eleSet2"));
System.out.println("eleSet1和eleSet2的并集: "+jedis.sunion("eleSet1" , "eleSet2"));
System.out.println("eleSet1和eleSet2的差集: "+jedis.sdiff("eleSet1" ,"eleSet2" ));//eleSet1中有eleSet2中没有的元素显示是出来
jedis.sinterstore("eleSet4","eleSet1","eleSet2");//求交集并将交集保存到eleSet4的集合
System.out.println("eleSet4中的元素: "+jedis.smembers("eleSet4"));
}
对Hash操作的命令
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
//添加名称为hash (key) 的hash元素
jedis.hmset("hash", map);
//向名称为hash的hash中添加key为key5,value 为value5元素
jedis.hset("hash", "key5", "value5");
//返回hash的全部元素
System.out.println("散列hash的所有键值对为: " + jedis.hgetAll("hash"));
//返回hash键值对的全部键
System.out.println("散列hash的所有键为: " + jedis.hkeys("hash"));
//返回hash键值对的全部值
System.out.println("散列hash的所有值为: " + jedis.hvals("hash"));
System.out.println("将key6保存的值加上一个整数,如果key6不存在则添加key6: " + jedis.hincrBy("hash","key6",6));
System.out.println("散列hash的所有键值对为: " + jedis.hgetAll("hash"));
System.out.println("将key6保存的值加上一个整数,如果key6不存在则添加key6: " + jedis.hincrBy("hash","key6",9));
System.out.println("删除一个或者多个键值对: " + jedis.hdel("hash","key2"));
System.out.println("散列hash中键值对的个数: " + jedis.hlen("hash"));
System.out.println("判断hash中是否存在key2: " + jedis.hexists("hash","key2"));
System.out.println("获取hash中的值: " + jedis.hmget("hash","key2"));
}
对Zset操作的命令
所有的api命令,就是我们对应的上面学习的指令,一个都没有变化!
明天继续加油!!!