• 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
  • 相关阅读:
    灵活读取Configuration文件
    Web页面访问权限
    母版页(MasterPage),你真得了解了吗?
    基于对象和面向对象
    [翻译]Silverlight 3中的tooltip
    2009年自我总结
    W3C CSS Validator 更喜欢CSS文件以一个class开头而不是注释?
    【翻译】读取文本文件(txt、csv、log、tab、fixed length)(上)
    1z0062 题库解析2
    1z0062 题库解析3
  • 原文地址:https://www.cnblogs.com/YUJIE666/p/11604601.html
Copyright © 2020-2023  润新知