jedis 是redis java连接工具 ,引入jar包后,就可以使用java代码操作redis。
二、redis修改远程可以连接vim /usr/redis/bin/redis.conf
:69 bind 127.0.0.1
把当前redis实例和本机127.0.0.1进行绑定,只能本机客户端进行连接
如果想让其他任何机器进行访问该实例,需要把该实例与当前主机IP进行绑定
:69 bind 192.168.140.41
从新启动服务
使用客户端直接连接时出错
/usr/redis/bin/redis-server /usr/redis/bin/redis.conf
连接要换为连接IP地址:
/usr/redis/bin/redis-cli -h 192.168.140.41
2.2、 创建项目引入jar,编写代码
redis.clients jedis4.2.2
具体代码:
1、进行字符串操作
public class ConnectRedisTest { public static void main(String[] args) { // 查看源码 会看到使用host和post的构造 Jedis jedis = new Jedis("192.168.140.41", 6379); // 测试是否可以联通 String pingResult = jedis.ping(); System.out.println("是否联通:"+pingResult); if (!"PONG".equals(pingResult)){ System.out.println("联不通"); return; }else { System.out.println("可以联通"); } // 查询 SetkeyList = jedis.keys("*"); System.out.println("已经存储的key为:"); for (String key : keyList) { System.out.print(key+"t"); } System.out.println(); System.out.println("-----------------------------------------"); // 进行字符串操作 jedis.set("aaa","111"); String aaa = jedis.get("aaa"); System.out.println("redis存储的字符串为:"+jedis.get("aaa")); // 添加多个元素 String mset = jedis.mset("bbb", "222", "ccc", "333", "ddd", "444"); System.out.println("===================================="); // 获取多个key的value值 List values = jedis.mget("aaa", "bbb", "ccc", "ddd"); for (String value : values) { System.out.print(value+"t"); } System.out.println("n"+"=================================="); // 指定kay的value值递增 int i=0; while (i<10){ long incr = jedis.incr(aaa); System.out.print(incr+"t"); i++; } System.out.println(); // 指定kay的value值递减 // while (i<10){ // long decr = jedis.decr(aaa); // System.out.print(decr+"t"); // i++; // } } }
打印结果:
2、对 hashs 散列类型进行操作
// 单个存值 jedis.hset("mapTest","a","111"); // 单个取值 System.out.println("散列hashmap取值:"+jedis.hget("mapTest", "a")); // 添加多个值 MaphashMap = new HashMap<>(); hashMap.put("b","222"); hashMap.put("c","333"); hashMap.put("d","444"); jedis.hmset("mapTest", hashMap); // 获取多个值 List valuesMap = jedis.hmget("mapTest", "a", "b", "c", "d"); for (String value : valuesMap) { System.out.print("散列hashmap取多值:"+value+"t"); } System.out.println(); // 获取key中多个filed属性值 Map map = jedis.hgetAll("mapTest"); for (Map.Entry entry : map.entrySet()) { System.out.println("key为:"+entry.getKey()+"tvalue为:"+entry.getValue()); } // 获取key中的所有filed Set mapTest = jedis.hkeys("mapTest"); System.out.print("fields为:"); for (String s : map.keySet()) { System.out.print(s+"t"); } // 获取key中的所有filed的value值 List mapTest1 = jedis.hvals("mapTest"); System.out.println("nvalue为"); for (String s : mapTest1) { System.out.print(s+"t"); } // 获取key的长度 long mapTest2 = jedis.hlen("mapTest"); System.out.println("nmapTest的长度为:"+mapTest2); // 删除kay中的某个filed long hdel = jedis.hdel("mapTest", "d");
打印结果:
3、 lists 列表类型的操作
// 进行list操作 String flushDB = jedis.flushDB(); // 添加元素 long lpush = jedis.lpush("listTest", "aa", "11", "bb", "22"); System.out.println("成功添加:"+lpush+"条数据"); System.out.print("遍历值为:"); for (long l = 0; l < jedis.llen("listTest"); l++) { System.out.print("下标"+l+"的值为:"+jedis.lindex("listTest",l)+"t"); } // 在尾部添加元素 jedis.rpush("listTest","cc","33"); System.out.print("n遍历值为:"); for (long l = 0; l < jedis.llen("listTest"); l++) { System.out.print("下标"+l+"的值为:"+jedis.lindex("listTest",l)+"t"); } // 移除并返回key的第一个元素 String listTest = jedis.lpop("listTest"); System.out.println("n删除第一个元素"+listTest); // 移除并返回key的最后一个元素 String listTest1 = jedis.rpop("listTest"); System.out.println("删除最后一个元素"+listTest1); // 获取key的长度 System.out.println("key的长度为:"+jedis.llen("listTest"));
打印结果:
4、sets 集合类型的操作
// 添加元素 long sadd = jedis.sadd("setTest", "aaa", "111", "bbb", "222"); System.out.println("添加 "+sadd+"条数据"); // 获取key中存储的所有元素值 SetsetTest = jedis.smembers("setTest"); System.out.print("储存的元素值为:"); for (String s : setTest) { System.out.print(s+"t"); } // key中是否含有 value 有返回1 没有返回0 boolean sismember = jedis.sismember("setTest", "aaa"); System.out.println("n是否含有该元素:"+sismember); // 获取集合key的长度 System.out.println("setTest的长度为:"+jedis.scard("setTest")); // 随机获取 key 中的 x 个元素 List setTest1 = jedis.srandmember("setTest", 2); System.out.println("随机获取2个元素:"+setTest1); jedis.sadd("setTest2", "aaa", "333", "ccc", "222"); // 获取 key1 和 key2的共有元素 Set sinter = jedis.sinter("setTest", "setTest2"); System.out.println("共有元素为:"+sinter); // 返回 key2 与 key3 共有元素的个数 并储存在集合key1中 long sinterstore = jedis.sinterstore("setTest3", "setTest", "setTest2"); System.out.println("有几个共同元素:"+sinterstore); System.out.println("setTest3存入的共同值:"+jedis.smembers("setTest3")); // 移除 key 中的一个或多个成员元素,不存在的成员元素会被忽略 long srem = jedis.srem("setTest", "aaa", "fgfg"); System.out.println("移除了:"+srem); // 移除 key 中的一个或多个随机元素,移除后会返回移除的元素 Set setTest2 = jedis.spop("setTest2", 2); System.out.println("随机移除2个元素"+setTest2);
打印结果:
5、sorted sets 有序集合类型
// 添加单条数据 long zadd = jedis.zadd("sortedSets", 11.1, "lisi"); System.out.println("成功添加"+zadd); // 添加多条 Mapmap1 = new HashMap<>(); map1.put("zhangsan",22.2); map1.put("zhaoliu",33.3); map1.put("wangwu",44.4); long sortedSets = jedis.zadd("sortedSets", map1); System.out.println("成功添加多条:"+sortedSets); // 返回 key 中是否含有元素并删除 有返回1 没有返回0 long zrem = jedis.zrem("sortedSets", "zhaoliu"); System.out.println("是否有这个元素:"+zrem); // 返回 key 中元素个数 long sortedSets1 = jedis.zcard("sortedSets"); System.out.println("sortedSets中有"+sortedSets1+"个元素"); // 返回 key 中分数在 x--y 这个区间的元素个数 long sortedSets2 = jedis.zcount("sortedSets", 0, 60); System.out.println("这个区间的元素个数为:"+sortedSets2); // 返回 key 中 数字在 b--c 这个范围的元素 List list = jedis.zrangeByScore("sortedSets", 0, 60); System.out.println(list);
结果打印: