20190928-02使用Redis客户端Jedis连接Redis,以及用Java代码操作Redis 000 030

 

启动redis

 

 

  1 package com.yujie.jedis;
  2 
  3 import java.util.HashMap;
  4 import java.util.Map;
  5 import java.util.Set;
  6 
  7 import redis.clients.jedis.BinaryClient.LIST_POSITION;
  8 import redis.clients.jedis.Jedis;
  9 import redis.clients.jedis.Tuple;
 10 
 11 public class TestJedis {
 12     public static void main(String[] args) {
 13         /*创建Jedis对象*/
 14         Jedis jedis = new Jedis("192.168.1.100",6379);    
 15         /*测试连接*/
 16         String ping = jedis.ping();
 17         /*输出ping结果、PONG表示连接成功*/
 18         System.out.println("输出ping结果、PONG表示连接成功:" + ping);
 19         System.out.println();
 20         
 21         /**************************key-k520*************************/
 22         System.out.println("**************************key-k520*************************");
 23         /*查询当前库的所有键*/
 24         Set<String> keys = jedis.keys("*");
 25         /*遍历输出所有键*/
 26         System.out.println("遍历输出所有键:");
 27         for(String key : keys) {
 28             System.out.print(key + ",");
 29         }
 30         System.out.println();
 31         /*判断某个键是否存在*/
 32         System.out.println("判断某个键是否存在。k520【key】--jedis.exists====>"+jedis.exists("k520"));
 33         /*查看键的类型*/
 34         System.out.println("查看键的类型。k520【key】--jedis.type====>"+jedis.type("k520"));
 35         /*删除某个键*/
 36         System.out.println("删除某个键,1表示删除成功,0表示删除失败。k520【key】--jedis.del====>"+jedis.del("k520"));
 37         /*为键值设置过期时间,单位秒*/
 38         System.out.println("为键值设置过期时间,单位秒。k520-600【key-second】--jedis.expire====>"+jedis.expire("k520", 600));
 39         /*查看还有多少秒过期,-1表示永不过期,-2表示已过期*/
 40         System.out.println("查看还有多少秒过期,大于0的数表示剩余秒数,-1表示永不过期,-2表示已过期。k520【key】--jedis.ttl====>"+jedis.ttl("k520"));        
 41         /*查看当前数据库的key的数量*/
 42         System.out.println("查看当前数据库的key的数量--jedis.dbSize====>"+jedis.dbSize());
 43         /*清空当前库,注意慎重使用*/
 44         /*System.out.println("清空当前库--jedis.flushDB====>"+jedis.flushDB());*/
 45         /*通杀全部库,注意慎重使用*/
 46         /*System.out.println("通杀全部库--jedis.flushAll====>"+jedis.flushAll());*/
 47         
 48         /**************************String-k999-k520*************************/
 49         System.out.println("**************************String-k999-k520*************************");
 50         /*String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
 51         String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
 52         String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。*/
 53         /*查询对应键值*/
 54         System.out.println("查询对应键值。k999【key】--jedis.get====>"+jedis.get("k999"));
 55         /*添加键值对*/
 56         System.out.println("添加键值对。k999-v999【key-value】--jedis.set====>"+jedis.set("k999", "v999"));
 57         /*将给定的<value> 追加到原值的末尾*/
 58         System.out.println("将给定的<value> 追加到原值的末尾,输出添加后值的长度。 k999-1【key-value】--jedis.append====>"+jedis.append("k999", "1"));
 59         /*获得值的长度*/
 60         System.out.println("获得值的长度。k999【key】--jedis.strlen====>"+jedis.strlen("k999"));
 61         /*只有在 key 不存在时设置 key 的值*/
 62         System.out.println("只有在 key不存在时设置 key的值,不存在时设置后返回1,存在时不能设置返回0。k520-520【key-value】--jedis.setnx====>"+jedis.setnx("k520", "520"));
 63         /*将 key中储存的数字值增1,只能对数字值操作,如果为空,新增值为1*/
 64         System.out.println("将 key中储存的数字值增1,只能对数字值操作,如果为空,新增值为1。k520【key】--jedis.incr====>"+jedis.incr("k520"));
 65         /*将 key中储存的数字值减1,只能对数字值操作,如果为空,新增值为-1*/
 66         System.out.println("将 key中储存的数字值减1,只能对数字值操作,如果为空,新增值为-1。k520【key】--jedis.decr====>"+jedis.decr("k520"));
 67         /*将 key中储存的数字值增加。自定义步长。*/
 68         System.out.println("将 key中储存的数字值增加。自定义步长。k520-100【key-num】--jedis.incrBy,显示增加后的值====>"+jedis.incrBy("k520", 100));
 69         /*将 key中储存的数字值减少。自定义步长。*/
 70         System.out.println("将 key中储存的数字值减少。自定义步长。k520-100【key-num】--jedis.decrBy,显示减少后的值====>"+jedis.decrBy("k520", 100));
 71         /*同时设置一个或多个 key-value对*/
 72         System.out.println("同时设置一个或多个key-value对。name-余杰,sex-男【key-value,key-value】--jedis.mset====>"+jedis.mset("name","余杰","sex","男"));
 73         /*同时获取一个或多个 value*/
 74         System.out.println("查询对应键值。name, sex【key,key】--jedis.mget====>"+jedis.mget("name","sex"));
 75         /*同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。*/
 76         System.out.println("同时设置一个或多个 key-value 对,当且仅当所有给定 key都不存在。"
 77                 + "省-福建,市-福州【key-value,key-value】。不存在时设置后返回1,存在时不能设置返回0--jedis.msetnx====>"
 78                 +jedis.msetnx("省","福建","市","福州"));
 79         /*获得值的范围,类似java中的substring*/
 80         System.out.println("获得值的范围,类似java中的substring。从0开始计算。k520-0-1【键-开始(包括)-结尾(包括),key-0-1,表示获取前两位】--jedis.getrange====>"+jedis.getrange("k520", 0, 1));
 81         /*用 <value>覆写<key> 所储存的字符串值,从<起始位置>开始。*/
 82         System.out.println("用 <value>覆写<key> 所储存的字符串值,从<起始位置>开始。k520【从0开始计算,键-起始位置(包括)-值,key-0-99,表示替换前两位为99】--jedis.setrange====>"+jedis.setrange("k520", 0, "99"));
 83         /*设置键值的同时,设置过期时间,单位秒。*/
 84         System.out.println("设置键值的同时,设置过期时间,单位秒。k520【key-60-888,表示设置key的值为888,且60秒后过期】--jedis.setex====>"+jedis.setex("k520", 60, "888"));
 85         /*查看还有多少秒过期,-1表示永不过期,-2表示已过期*/
 86         System.out.println("查看还有多少秒过期,大于0的数表示剩余秒数,-1表示永不过期,-2表示已过期k520【key】--jedis.ttl====>"+jedis.ttl("k520"));        
 87         /*以新换旧,设置了新值同时获得旧值。*/
 88         System.out.println("以新换旧,设置了新值同时获得旧值。k520【key-001,表示设置key的新值为001,且获取原来的值】--jedis.getSet====>"+jedis.getSet("k520", "001"));
 89         System.out.println();
 90         
 91         /**************************List-k2000-k3000*************************/
 92         System.out.println("**************************List-k2000-k3000*************************");
 93         /*单键多值
 94         Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
 95              它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。*/
 96         /*从左边插入一个或多个值。*/
 97         System.out.println("从左边插入一个或多个值。返回插入后的值数量k2000【key-value-value-...】--jedis.lpush====>"+jedis.lpush("k2000","v1","v2"));
 98         /*按照索引下标获得元素(从左到右)*/
 99         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000));    
100         /*从右边插入一个或多个值。*/
101         System.out.println("从右边插入一个或多个值。返回插入后的值数量k2000【key-value-value-...】--jedis.rpush====>"+jedis.rpush("k2000","v3","v4"));
102         /*按照索引下标获得元素(从左到右)*/
103         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000));
104         /*从左边吐出一个值。值在键在,值亡键亡。*/
105         System.out.println("从左边吐出一个值。值在键在,值亡键亡。k2000【key】--jedis.lpop====>"+jedis.lpop("k2000"));
106         /*按照索引下标获得元素(从左到右)*/
107         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000));
108         /*从右边吐出一个值。值在键在,值亡键亡。*/
109         System.out.println("从右边吐出一个值。值在键在,值亡键亡。k2000【key】--jedis.rpop====>"+jedis.rpop("k2000"));
110         /*按照索引下标获得元素(从左到右)*/
111         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000));
112         /*从左边插入一个或多个值。*/
113         System.out.println("从左边插入一个或多个值。返回插入后的值数量k3000【key-value-value-...】--jedis.lpush====>"+jedis.lpush("k3000","v3000","v3001"));
114         /*按照索引下标获得元素(从左到右)*/
115         System.out.println("按照索引下标获得元素(从左到右)k3000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k3000", 0, 10000));
116         /*从<key1>列表右边吐出一个值,插到<key2>列表左边。*/
117         System.out.println("从<key1>列表右边吐出一个值,插到<key2>列表左边。k2000【key1,key2】--jedis.rpoplpush====>"+jedis.rpoplpush("k2000", "k3000"));
118         /*按照索引下标获得元素(从左到右)*/
119         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000));
120         /*按照索引下标获得元素(从左到右)*/
121         System.out.println("按照索引下标获得元素(从左到右)k3000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k3000", 0, 10000));
122         /*按照索引下标获得元素(从左到右)*/
123         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0,获取第一个值】--jedis.lindex====>"+jedis.lindex("k2000", 0));
124         /*获得列表长度*/
125         System.out.println("获得列表长度k2000【key】--jedis.llen====>"+jedis.llen("k2000"));
126         /*获得列表长度*/
127         System.out.println("获得列表长度k3000【key】--jedis.llen====>"+jedis.llen("k3000"));
128         /*在<value>的前面插入<newvalue>*/
129         System.out.println("在<value>的前面插入<newvalue>k2000【key-LIST_POSITION.BEFORE-value-newvalue】--jedis.linsert====>"+jedis.linsert("k2000", LIST_POSITION.BEFORE, "v1", "v2333"));
130         /*在<value>的后面插入<newvalue>*/
131         System.out.println("在<value>的后面插入<newvalue>k2000【key-LIST_POSITION.AFTER-value-newvalue】--jedis.linsert====>"+jedis.linsert("k2000", LIST_POSITION.AFTER, "v1", "v2444"));
132         /*按照索引下标获得元素(从左到右)*/
133         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000)); 
134         /*从左边删除n个value(从左到右)*/
135         System.out.println("从左边删除n个value(从左到右)k2000【key-10000-value】--jedis.lrem====>"+jedis.lrem("k2000", 10000, "v1"));
136         /*按照索引下标获得元素(从左到右)*/
137         System.out.println("按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>"+jedis.lrange("k2000", 0, 10000));
138         /*删除某个键*/
139         System.out.println("删除某个键,1表示删除成功,0表示删除失败k2000【key】--jedis.del====>"+jedis.del("k2000"));
140         /*删除某个键*/
141         System.out.println("删除某个键,1表示删除成功,0表示删除失败k3000【key】--jedis.del====>"+jedis.del("k3000"));
142         System.out.println();
143         
144         /**************************Set-k4000*************************/
145         System.out.println("**************************Set-k4000-k5000*************************");
146         /*Redis set对外提供的功能与list类似是一个列表的功能,
147                  特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,
148                  又不希望出现重复数据时,set是一个很好的选择,
149                  并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。*/
150         /*Redis的Set是string类型的无序集合。
151                  它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。*/
152         /*将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。*/
153         System.out.println("将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k4000【key-value-value-...】--jedis.sadd====>"+jedis.sadd("k4000", "v4001", "v4002", "v4003"));
154         /*取出该集合的所有值。*/
155         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
156         /*判断集合<key>是否为含有该<value>值,有返回1,没有返回0*/
157         System.out.println("判断集合<key>是否为含有该<value>值,有返回true,没有返回false。k4000【key-value】--jedis.get====>"+jedis.sismember("k4000", "v4001"));
158         /*返回该集合的元素个数。*/
159         System.out.println("返回该集合的元素个数。k4000【key】--jedis.scard====>"+jedis.scard("k4000"));
160         /*删除集合中的某个元素。*/
161         System.out.println("删除集合中的某个元素。k4000【key-value-value-...】--jedis.srem====>"+jedis.srem("k4000", "v4001", "v4002"));
162         /*取出该集合的所有值。*/
163         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
164         /*将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。*/
165         System.out.println("将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k4000【key-value-value-...】--jedis.sadd====>"+jedis.sadd("k4000", "v4001", "v4002"));
166         /*取出该集合的所有值。*/
167         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
168         /*随机从该集合中吐出一个值。*/
169         System.out.println("随机从该集合中吐出一个值。k4000【key】--jedis.spop====>"+jedis.spop("k4000"));
170         /*取出该集合的所有值。*/
171         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
172         /*随机从该集合中取出1个值。不会从集合中删除*/
173         System.out.println("随机从该集合中取出1个值。不会从集合中删除。k4000【key】--jedis.get====>"+jedis.srandmember("k4000"));
174         /*取出该集合的所有值。*/
175         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
176         /*随机从该集合中取出1个值。不会从集合中删除*/
177         System.out.println("随机从该集合中取出n个值。不会从集合中删除。k4000【key-num】--jedis.get====>"+jedis.srandmember("k4000", 2));
178         /*取出该集合的所有值。*/
179         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
180         /*删除某个键*/
181         System.out.println("删除某个键,1表示删除成功,0表示删除失败k4000【key】--jedis.del====>"+jedis.del("k4000"));
182         /*删除某个键*/
183         System.out.println("删除某个键,1表示删除成功,0表示删除失败k5000【key】--jedis.del====>"+jedis.del("k5000"));
184         /*将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。*/
185         System.out.println("将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k4000【key-value-value-...】--jedis.sadd====>"+jedis.sadd("k4000", "v4001", "v5002", "v4003"));        
186         /*将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。*/
187         System.out.println("将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k5000【key-value-value-...】--jedis.sadd====>"+jedis.sadd("k5000", "v4001", "v5002", "v5003"));
188         /*取出该集合的所有值。*/
189         System.out.println("取出该集合的所有值。k4000【key】--jedis.smembers====>"+jedis.smembers("k4000"));
190         /*取出该集合的所有值。*/
191         System.out.println("取出该集合的所有值。k5000【key】--jedis.smembers====>"+jedis.smembers("k5000"));
192         /*返回两个集合的交集元素。*/
193         System.out.println("返回两个集合的交集元素。【key1-key2】--jedis.sinter====>"+jedis.sinter("k4000", "k5000"));
194         /*返回两个集合的并集元素。*/
195         System.out.println("返回两个集合的并集元素。【key1-key2】--jedis.sunion====>"+jedis.sunion("k4000", "k5000"));
196         /*返回两个集合的差集元素。*/
197         System.out.println("返回两个集合的差集元素。【key1-key2】--jedis.sdiff====>"+jedis.sdiff("k4000", "k5000"));
198         System.out.println();
199         
200         /**************************hash-k6000*************************/
201         System.out.println("**************************hash-k6000*************************");
202         /*Redis  hash 是一个键值对集合。
203         Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
204              类似Java里面的Map<String,Object>*/
205         /*给<key>集合中的  <field>键赋值<value>*/
206         System.out.println("给<key>集合中的  <field>键赋值<value>。k6000-name-yujie【key-field-value】--jedis.hset====>"+jedis.hset("k6000", "name", "yujie"));
207         /*从<key1>集合<field> 取出 value*/
208         System.out.println("从<key1>集合<field> 取出 value。k6000-name【key-field】--jedis.hget====>"+jedis.hget("k6000", "name"));
209         /*参数Map*/
210         Map<String, String> hashmap = new HashMap<String, String>();
211         hashmap.put("age", "18");
212         hashmap.put("sex", "man");
213         /*批量设置hash的值*/
214         System.out.println("批量设置hash的值。k6000。age-18,sex-man【key-map】--jedis.hmset====>"+jedis.hmset("k6000", hashmap));
215         /*查看哈希表 key 中,给定域 field 是否存在。*/
216         System.out.println("查看哈希表 key 中,给定域 field 是否存在。k6000-name【key-field】--jedis.hexists====>"+jedis.hexists("k6000", "name"));
217         /*列出该hash集合的所有field*/
218         System.out.println("列出该hash集合的所有field。k6000【key】--jedis.hkeys====>"+jedis.hkeys("k6000"));
219         /*列出该hash集合的所有value*/
220         System.out.println("列出该hash集合的所有value。k6000【key】--jedis.hvals====>"+jedis.hvals("k6000"));
221         /*为哈希表 key 中的域 field 的值加上增量 increment*/
222         System.out.println("为哈希表 key 中的域 field 的值加上增量 increment。k6000-age -10【key-field-num】--jedis.hincrBy====>"+jedis.hincrBy("k6000", "age", 10));
223         /*将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在*/
224         System.out.println("将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。k6000-hight-180【key-field-value】--jedis.hsetnx====>"+jedis.hsetnx("k6000", "hight", "180"));
225         System.out.println();
226         
227         /**************************zset-k7000*************************/
228         System.out.println("**************************zset-k7000*************************");
229         /*Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
230              不同之处是有序集合的所有成员都关联了一个评分(score) ,
231              这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。
232              集合的成员是唯一的,但是评分可以是重复了 。因为元素是有序的, 
233              所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
234              访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。*/
235         /*将一个 member元素及其 score值加入到有序集 key当中。*/
236         System.out.println("将一个member元素及其 score值加入到有序集 key当中。k7000-50-v7050【key-score-value】--jedis.zadd====>"+jedis.zadd("k7000", 50, "v7050"));
237         /*参数Map*/
238         Map<String, Double> zsetmap = new HashMap<String, Double>();
239         zsetmap.put("v7060", 60.0);
240         zsetmap.put("v7070", 70.0);
241         /*将多个member元素及其 score值加入到有序集 key当中。*/
242         System.out.println("将多个member元素及其 score值加入到有序集 key当中。"
243                 + "k7000。v7060-60.0,v7070-70.0【key-score-value】--jedis.zadd====>"+jedis.zadd("k7000", zsetmap));
244         System.out.println();
245         
246         /*从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素*/
247         System.out.println("从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素。从0开始。
"
248                 + "k7000-0-10000【key-start-stop】--jedis.zrange====>"+jedis.zrange("k7000", 0, 10000));
249         /*从大到小排列,返回有序集 key中,下标在<start> <stop>之间的元素*/
250         System.out.println("从大到小排列,返回有序集 key中,下标在<start> <stop>之间的元素。从0开始。
"
251                 + "k7000-0-10000【key-start-stop】--jedis.zrevrange====>"+jedis.zrevrange("k7000", 0, 10000));
252         System.out.println();
253         
254         /*从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。*/
255         System.out.println(
256                 "从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素,"
257                 + "带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。"
258                 + "
    k7000-0-10000【key-start-stop】--jedis.zrangeWithScores");
259         Set<Tuple> zrangeWithScores = jedis.zrangeWithScores("k7000", 0, 10000);
260         /*遍历*/
261         for(Tuple t : zrangeWithScores) {
262             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
263         }
264         /*从大到小排列,返回有序集 key中,下标在<start> <stop>之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。*/
265         System.out.println(
266                 "从大到小排列,返回有序集 key中,下标在<start> <stop>之间的元素,"
267                 + "带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。"
268                 + "
    k7000-0-10000【key-start-stop】--jedis.zrevrangeWithScores");
269         Set<Tuple> zrevrangeWithScores = jedis.zrevrangeWithScores("k7000", 0, 10000);
270         /*遍历*/
271         for(Tuple t : zrevrangeWithScores) {
272             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
273         }
274         System.out.println();
275         
276         /*从小到大排列,返回有序集 key中,所有 score值介于min和 max之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。*/
277         System.out.println("从小到大排列,返回有序集 key中,所有 score值介于min和 max之间(包括等于 min 或 max )的成员
" + 
278                 "             有序集成员按 score 值递增(从小到大)次序排列。从0开始。"
279                 + "
 k7000-0-1000【key-min-max】--jedis.zrangeByScore====>"
280                 +jedis.zrangeByScore("k7000", 0, 1000));
281         /*从大到小排列,返回有序集 key中,所有 score值介于min和 max之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从大到小)次序排列。*/
282         System.out.println("从大到小排列,返回有序集 key中,所有 score值介于min和 max之间(包括等于 min 或 max )的成员
" + 
283                 "             有序集成员按 score 值递增(从小到大)次序排列。从0开始。"
284                 + "
 k7000-0-1000【key-min-max】--jedis.zrevrangeByScore====>"
285                 +jedis.zrevrangeByScore("k7000", 1000, 0) + "
");
286         
287         /*从小到大排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
288              有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。*/        
289         System.out.println("从小到大排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
" + 
290                 "             有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。"
291                 + "
 k7000-0-1000【key-min-max】--jedis.zrangeByScoreWithScores"
292                 );
293         Set<Tuple> zrangeByScoreWithScores = jedis.zrangeByScoreWithScores("k7000", 0, 1000);
294         /*遍历*/
295         for(Tuple t : zrangeByScoreWithScores) {
296             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
297         }
298         /*从大到小排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
299             有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。*/        
300         System.out.println("从大到小排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
" + 
301                 "             有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。"
302                 + "
 k7000-0-1000【key-min-max】--jedis.zrevrangeByScoreWithScores"
303                 );
304         Set<Tuple> zrevrangeByScoreWithScores = jedis.zrevrangeByScoreWithScores("k7000", 1000, 0);
305         /*遍历*/
306         for(Tuple t : zrevrangeByScoreWithScores) {
307             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
308         }
309         System.out.println();
310         
311         /*分页。从小到大排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
312                 有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。*/
313         System.out.println("分页。从小到大排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
" + 
314                 "        有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。"
315                 + "
 k7000-0-1000-0-2【key-min-max-offset-count】--jedis.zrangeByScoreWithScores");
316         Set<Tuple> fenyezrangeByScoreWithScores = jedis.zrangeByScoreWithScores("k7000", 0, 1000, 0, 2);
317         /*遍历*/
318         for(Tuple t : fenyezrangeByScoreWithScores) {
319             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
320         }
321         /*分页。从大到小排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
322         有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。*/
323         System.out.println("分页。从大到小排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
" + 
324                 "        有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。"
325                 + "
 k7000-0-1000-0-2【key-min-max-offset-count】--jedis.zrevrangeByScoreWithScores");
326         Set<Tuple> fenyezrevrangeByScoreWithScores = jedis.zrevrangeByScoreWithScores("k7000", 1000, 0, 0, 2);
327         /*遍历*/
328         for(Tuple t : fenyezrevrangeByScoreWithScores) {
329             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
330         }
331         System.out.println();
332          
333         /*为元素的score加上增量*/
334         System.out.println("为元素的score加上增量。k7000-5-v7060【key-score-value】--jedis.zincrby====>"+jedis.zincrby("k7000", 5, "v7060"));
335         /*从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。*/
336         System.out.println(
337                 "从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素,"
338                 + "带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。"
339                 + "
    k7000-0-10000【key-start-stop】--jedis.zrangeWithScores");
340         Set<Tuple> zrangeWithScores2 = jedis.zrangeWithScores("k7000", 0, 10000);
341         /*遍历*/
342         for(Tuple t : zrangeWithScores2) {
343             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
344         }
345         System.out.println();
346         
347         /*删除该集合下,指定值的元素*/
348         System.out.println("删除该集合下,指定值的元素。k7000-v7060【key-value】--jedis.zrem====>"+jedis.zrem("k7000", "v7060"));
349         /*从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。*/
350         System.out.println(
351                 "从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素,"
352                 + "带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。"
353                 + "
    k7000-0-10000【key-start-stop】--jedis.zrangeWithScores");
354         Set<Tuple> zrangeWithScores3 = jedis.zrangeWithScores("k7000", 0, 10000);
355         /*遍历*/
356         for(Tuple t : zrangeWithScores3) {
357             System.out.println("值:" + t.getElement() + ",分数:" + t.getScore());
358         }
359         System.out.println();
360         
361         /*统计该集合,分数区间内的元素个数*/
362         System.out.println("统计该集合,分数区间内的元素个数。从0开始。k7000-0-1000【key-min-max】--jedis.zcount====>"
363         +jedis.zcount("k7000", 0, 1000));
364         
365         /*返回该值在集合中的排名,从0开始。*/
366         System.out.println("返回该值在集合中的排名,从0开始。k7000-v7070【key-value】--jedis.zrank====>"
367         +jedis.zrank("k7000", "v7070"));
368         
369         /*关闭Redis连接*/
370         System.out.println("关闭Redis连接");
371         jedis.close();
372     }
373 }

 结果:

  1 输出ping结果、PONG表示连接成功:PONG
  2 
  3 **************************key-k520*************************
  4 遍历输出所有键:
  5 省,市,k1,sex,k3,k4,k5,k6,name,k6000,k7000,k520,k5000,k4000,k999,
  6 判断某个键是否存在。k520【key】--jedis.exists====>true
  7 查看键的类型。k520【key】--jedis.type====>string
  8 删除某个键,1表示删除成功,0表示删除失败。k520【key】--jedis.del====>1
  9 为键值设置过期时间,单位秒。k520-600【key-second】--jedis.expire====>0
 10 查看还有多少秒过期,大于0的数表示剩余秒数,-1表示永不过期,-2表示已过期。k520【key】--jedis.ttl====>-2
 11 查看当前数据库的key的数量--jedis.dbSize====>14
 12 **************************String-k999-k520*************************
 13 查询对应键值。k999【key】--jedis.get====>v9991
 14 添加键值对。k999-v999【key-value】--jedis.set====>OK
 15 将给定的<value> 追加到原值的末尾,输出添加后值的长度。 k999-1【key-value】--jedis.append====>5
 16 获得值的长度。k999【key】--jedis.strlen====>5
 17 只有在 key不存在时设置 key的值,不存在时设置后返回1,存在时不能设置返回0。k520-520【key-value】--jedis.setnx====>1
 18 将 key中储存的数字值增1,只能对数字值操作,如果为空,新增值为1。k520【key】--jedis.incr====>521
 19 将 key中储存的数字值减1,只能对数字值操作,如果为空,新增值为-1。k520【key】--jedis.decr====>520
 20 将 key中储存的数字值增加。自定义步长。k520-100【key-num】--jedis.incrBy,显示增加后的值====>620
 21 将 key中储存的数字值减少。自定义步长。k520-100【key-num】--jedis.decrBy,显示减少后的值====>520
 22 同时设置一个或多个key-value对。name-余杰,sex-男【key-value,key-value】--jedis.mset====>OK
 23 查询对应键值。name, sex【key,key】--jedis.mget====>[余杰, 男]
 24 同时设置一个或多个 key-value 对,当且仅当所有给定 key都不存在。省-福建,市-福州【key-value,key-value】。不存在时设置后返回1,存在时不能设置返回0--jedis.msetnx====>0
 25 获得值的范围,类似java中的substring。从0开始计算。k520-0-1【键-开始(包括)-结尾(包括),key-0-1,表示获取前两位】--jedis.getrange====>52
 26 用 <value>覆写<key> 所储存的字符串值,从<起始位置>开始。k520【从0开始计算,键-起始位置(包括)-值,key-0-99,表示替换前两位为99】--jedis.setrange====>3
 27 设置键值的同时,设置过期时间,单位秒。k520【key-60-888,表示设置key的值为888,且60秒后过期】--jedis.setex====>OK
 28 查看还有多少秒过期,大于0的数表示剩余秒数,-1表示永不过期,-2表示已过期k520【key】--jedis.ttl====>60
 29 以新换旧,设置了新值同时获得旧值。k520【key-001,表示设置key的新值为001,且获取原来的值】--jedis.getSet====>888
 30 
 31 **************************List-k2000-k3000*************************
 32 从左边插入一个或多个值。返回插入后的值数量k2000【key-value-value-...】--jedis.lpush====>2
 33 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v2, v1]
 34 从右边插入一个或多个值。返回插入后的值数量k2000【key-value-value-...】--jedis.rpush====>4
 35 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v2, v1, v3, v4]
 36 从左边吐出一个值。值在键在,值亡键亡。k2000【key】--jedis.lpop====>v2
 37 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v1, v3, v4]
 38 从右边吐出一个值。值在键在,值亡键亡。k2000【key】--jedis.rpop====>v4
 39 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v1, v3]
 40 从左边插入一个或多个值。返回插入后的值数量k3000【key-value-value-...】--jedis.lpush====>2
 41 按照索引下标获得元素(从左到右)k3000【key-0-10000】--jedis.lrange====>[v3001, v3000]
 42 从<key1>列表右边吐出一个值,插到<key2>列表左边。k2000【key1,key2】--jedis.rpoplpush====>v3
 43 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v1]
 44 按照索引下标获得元素(从左到右)k3000【key-0-10000】--jedis.lrange====>[v3, v3001, v3000]
 45 按照索引下标获得元素(从左到右)k2000【key-0,获取第一个值】--jedis.lindex====>v1
 46 获得列表长度k2000【key】--jedis.llen====>1
 47 获得列表长度k3000【key】--jedis.llen====>3
 48 在<value>的前面插入<newvalue>k2000【key-LIST_POSITION.BEFORE-value-newvalue】--jedis.linsert====>2
 49 在<value>的后面插入<newvalue>k2000【key-LIST_POSITION.AFTER-value-newvalue】--jedis.linsert====>3
 50 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v2333, v1, v2444]
 51 从左边删除n个value(从左到右)k2000【key-10000-value】--jedis.lrem====>1
 52 按照索引下标获得元素(从左到右)k2000【key-0-10000】--jedis.lrange====>[v2333, v2444]
 53 删除某个键,1表示删除成功,0表示删除失败k2000【key】--jedis.del====>1
 54 删除某个键,1表示删除成功,0表示删除失败k3000【key】--jedis.del====>1
 55 
 56 **************************Set-k4000-k5000*************************
 57 将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k4000【key-value-value-...】--jedis.sadd====>1
 58 取出该集合的所有值。k4000【key】--jedis.smembers====>[v5002, v4001, v4002, v4003]
 59 判断集合<key>是否为含有该<value>值,有返回true,没有返回false。k4000【key-value】--jedis.get====>true
 60 返回该集合的元素个数。k4000【key】--jedis.scard====>4
 61 删除集合中的某个元素。k4000【key-value-value-...】--jedis.srem====>2
 62 取出该集合的所有值。k4000【key】--jedis.smembers====>[v4003, v5002]
 63 将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k4000【key-value-value-...】--jedis.sadd====>2
 64 取出该集合的所有值。k4000【key】--jedis.smembers====>[v4003, v4001, v5002, v4002]
 65 随机从该集合中吐出一个值。k4000【key】--jedis.spop====>v4001
 66 取出该集合的所有值。k4000【key】--jedis.smembers====>[v4003, v5002, v4002]
 67 随机从该集合中取出1个值。不会从集合中删除。k4000【key】--jedis.get====>v4003
 68 取出该集合的所有值。k4000【key】--jedis.smembers====>[v4003, v5002, v4002]
 69 随机从该集合中取出n个值。不会从集合中删除。k4000【key-num】--jedis.get====>[v5002, v4003]
 70 取出该集合的所有值。k4000【key】--jedis.smembers====>[v4003, v5002, v4002]
 71 删除某个键,1表示删除成功,0表示删除失败k4000【key】--jedis.del====>1
 72 删除某个键,1表示删除成功,0表示删除失败k5000【key】--jedis.del====>1
 73 将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k4000【key-value-value-...】--jedis.sadd====>3
 74 将一个或多个 member元素加入到集合key当中,已经存在于集合的 member元素将被忽略。k5000【key-value-value-...】--jedis.sadd====>3
 75 取出该集合的所有值。k4000【key】--jedis.smembers====>[v5002, v4001, v4003]
 76 取出该集合的所有值。k5000【key】--jedis.smembers====>[v5003, v5002, v4001]
 77 返回两个集合的交集元素。【key1-key2】--jedis.sinter====>[v5002, v4001]
 78 返回两个集合的并集元素。【key1-key2】--jedis.sunion====>[v4003, v5003, v5002, v4001]
 79 返回两个集合的差集元素。【key1-key2】--jedis.sdiff====>[v4003]
 80 
 81 **************************hash-k6000*************************
 82 给<key>集合中的  <field>键赋值<value>。k6000-name-yujie【key-field-value】--jedis.hset====>0
 83 从<key1>集合<field> 取出 value。k6000-name【key-field】--jedis.hget====>yujie
 84 批量设置hash的值。k6000。age-18,sex-man【key-map】--jedis.hmset====>OK
 85 查看哈希表 key 中,给定域 field 是否存在。k6000-name【key-field】--jedis.hexists====>true
 86 列出该hash集合的所有field。k6000【key】--jedis.hkeys====>[name, hight, age, sex]
 87 列出该hash集合的所有value。k6000【key】--jedis.hvals====>[yujie, 18, man, 180]
 88 为哈希表 key 中的域 field 的值加上增量 increment。k6000-age -10【key-field-num】--jedis.hincrBy====>28
 89 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。k6000-hight-180【key-field-value】--jedis.hsetnx====>0
 90 
 91 **************************zset-k7000*************************
 92 将一个member元素及其 score值加入到有序集 key当中。k7000-50-v7050【key-score-value】--jedis.zadd====>0
 93 将多个member元素及其 score值加入到有序集 key当中。k7000。v7060-60.0,v7070-70.0【key-score-value】--jedis.zadd====>1
 94 
 95 从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素。从0开始。
 96 k7000-0-10000【key-start-stop】--jedis.zrange====>[v7050, v7060, v7070]
 97 从大到小排列,返回有序集 key中,下标在<start> <stop>之间的元素。从0开始。
 98 k7000-0-10000【key-start-stop】--jedis.zrevrange====>[v7070, v7060, v7050]
 99 
100 从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。
101     k7000-0-10000【key-start-stop】--jedis.zrangeWithScores
102 值:v7050,分数:50.0
103 值:v7060,分数:60.0
104 值:v7070,分数:70.0
105 从大到小排列,返回有序集 key中,下标在<start> <stop>之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。
106     k7000-0-10000【key-start-stop】--jedis.zrevrangeWithScores
107 值:v7070,分数:70.0
108 值:v7060,分数:60.0
109 值:v7050,分数:50.0
110 
111 从小到大排列,返回有序集 key中,所有 score值介于min和 max之间(包括等于 min 或 max )的成员
112              有序集成员按 score 值递增(从小到大)次序排列。从0开始。
113  k7000-0-1000【key-min-max】--jedis.zrangeByScore====>[v7050, v7060, v7070]
114 从大到小排列,返回有序集 key中,所有 score值介于min和 max之间(包括等于 min 或 max )的成员
115              有序集成员按 score 值递增(从小到大)次序排列。从0开始。
116  k7000-0-1000【key-min-max】--jedis.zrevrangeByScore====>[v7070, v7060, v7050]
117 
118 从小到大排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
119              有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。
120  k7000-0-1000【key-min-max】--jedis.zrangeByScoreWithScores
121 值:v7050,分数:50.0
122 值:v7060,分数:60.0
123 值:v7070,分数:70.0
124 从大到小排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
125              有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。
126  k7000-0-1000【key-min-max】--jedis.zrevrangeByScoreWithScores
127 值:v7070,分数:70.0
128 值:v7060,分数:60.0
129 值:v7050,分数:50.0
130 
131 分页。从小到大排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
132         有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。
133  k7000-0-1000-0-2【key-min-max-offset-count】--jedis.zrangeByScoreWithScores
134 值:v7050,分数:50.0
135 值:v7060,分数:60.0
136 分页。从大到小排列,返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
137         有序集成员按 score 值递增(从小到大)次序排列,可以让分数一起和值返回到结果集。从0开始。
138  k7000-0-1000-0-2【key-min-max-offset-count】--jedis.zrevrangeByScoreWithScores
139 值:v7070,分数:70.0
140 值:v7060,分数:60.0
141 
142 为元素的score加上增量。k7000-5-v7060【key-score-value】--jedis.zincrby====>65.0
143 从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。
144     k7000-0-10000【key-start-stop】--jedis.zrangeWithScores
145 值:v7050,分数:50.0
146 值:v7060,分数:65.0
147 值:v7070,分数:70.0
148 
149 删除该集合下,指定值的元素。k7000-v7060【key-value】--jedis.zrem====>1
150 从小到大排列,返回有序集 key中,下标在<start> <stop>之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。从0开始。
151     k7000-0-10000【key-start-stop】--jedis.zrangeWithScores
152 值:v7050,分数:50.0
153 值:v7070,分数:70.0
154 
155 统计该集合,分数区间内的元素个数。从0开始。k7000-0-1000【key-min-max】--jedis.zcount====>2
156 返回该值在集合中的排名,从0开始。k7000-v7070【key-value】--jedis.zrank====>1
原文地址:https://www.cnblogs.com/YUJIE666/p/11604601.html