Java Redis instance operation

Transfer: http://www.cnblogs.com/edisonfeng/p/3571870.html

2, the main class

    1) functional class

Copy the code 

package com.redis;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.jedis.SortingParams;



public class RedisClient {

    private Jedis jedis;//非切片额客户端连接
    private JedisPool jedisPool;//非切片连接池
    private ShardedJedis shardedJedis;//切片额客户端连接
    private ShardedJedisPool shardedJedisPool;//切片连接池
    
    public RedisClient() 
    { 
        initialPool(); 
        initialShardedPool(); 
        shardedJedis = shardedJedisPool.getResource(); 
        jedis = jedisPool.getResource(); 
        
        
    } 
 
    
    private void initialPool() 
    { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxActive(20); 
        config.setMaxIdle(5); 
        config.setMaxWait(1000l); 
        config.setTestOnBorrow(false); 
        
        jedisPool = new JedisPool(config,"127.0.0.1",6379);
    }
    
     
    private void initialShardedPool() 
    { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxActive(20); 
        config.setMaxIdle(5); 
        config.setMaxWait(1000l); 
        config.setTestOnBorrow(false); 
        // slave链接 
        List shards = new ArrayList(); 
        shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 

        // 构造池 
        shardedJedisPool = new ShardedJedisPool(config, shards); 
    } 

    public void show() {     
        KeyOperate(); 
        StringOperate(); 
        ListOperate(); 
        SetOperate();
        SortedSetOperate();
        HashOperate(); 
        jedisPool.returnResource(jedis);
        shardedJedisPool.returnResource(shardedJedis);
    } 

      private void KeyOperate() {
         。。。
      }

      private void StringOperate() {
         。。。
      }

      private void ListOperate() {
         。。。
      }

      private void SetOperate() {
         。。。
      }

      private void SortedSetOperate() {
         。。。
      }
    
      private void HashOperate() {
         。。。
      }
}

Copy the code

    2) test class

Copy the code

package com.redis;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new RedisClient().show(); 
    }

}

Copy the code

  3, each performance function

    1) key features

Copy the code

private void KeyOperate() 
    { 
        System.out.println("======================key=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());
        // 判断key否存在 
        System.out.println("判断key999键是否存在:"+shardedJedis.exists("key999")); 
        System.out.println("新增key001,value001键值对:"+shardedJedis.set("key001", "value001")); 
        System.out.println("判断key001是否存在:"+shardedJedis.exists("key001"));
        // 输出系统中所有的key
        System.out.println("新增key002,value002键值对:"+shardedJedis.set("key002", "value002"));
        System.out.println("系统中所有键如下:");
        Set keys = jedis.keys("*"); 
        Iterator it=keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.println(key);   
        }
        // 删除某个key,若key不存在,则忽略该命令。
        System.out.println("系统中删除key002: "+jedis.del("key002"));
        System.out.println("判断key002是否存在:"+shardedJedis.exists("key002"));
        // 设置 key001的过期时间
        System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5));
        try{ 
            Thread.sleep(2000); 
        } 
        catch (InterruptedException e){ 
        } 
        // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
        // 移除某个key的生存时间
        System.out.println("移除key001的生存时间:"+jedis.persist("key001"));
        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
        // 查看key所储存的值的类型
        System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
        
    } 

Copy the code

    operation result:

Copy the code

======================key==========================
清空库中所有数据:OK
判断key999键是否存在:false
新增key001,value001键值对:OK
判断key001是否存在:true
新增key002,value002键值对:OK
系统中所有键如下:
key002
key001
系统中删除key002: 1
判断key002是否存在:false
设置 key001的过期时间为5秒:1
查看key001的剩余生存时间:3
移除key001的生存时间:1
查看key001的剩余生存时间:-1
查看key所储存的值的类型:string

Copy the code

    2) String functions

Copy the code

private void StringOperate() 
    {  
        System.out.println("======================String_1=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());
        
        System.out.println("=============增=============");
        jedis.set("key001","value001");
        jedis.set("key002","value002");
        jedis.set("key003","value003");
        System.out.println("已新增的3个键值对如下:");
        System.out.println(jedis.get("key001"));
        System.out.println(jedis.get("key002"));
        System.out.println(jedis.get("key003"));
        
        System.out.println("=============删=============");  
        System.out.println("删除key003键值对:"+jedis.del("key003"));  
        System.out.println("获取key003键对应的值:"+jedis.get("key003"));
        
        System.out.println("=============改=============");
        //1、直接覆盖原来的数据
        System.out.println("直接覆盖key001原来的数据:"+jedis.set("key001","value001-update"));
        System.out.println("获取key001对应的新值:"+jedis.get("key001"));
        //2、直接覆盖原来的数据  
        System.out.println("在key002原来值后面追加:"+jedis.append("key002","+appendString"));
        System.out.println("获取key002对应的新值"+jedis.get("key002")); 
   
        System.out.println("=============增,删,查(多个)=============");
          
        System.out.println("一次性新增key201,key202,key203,key204及其对应值:"+jedis.mset("key201","value201",
                        "key202","value202","key203","value203","key204","value204"));  
        System.out.println("一次性获取key201,key202,key203,key204各自对应的值:"+
                        jedis.mget("key201","key202","key203","key204"));
        System.out.println("一次性删除key201,key202:"+jedis.del(new String[]{"key201", "key202"}));
        System.out.println("一次性获取key201,key202,key203,key204各自对应的值:"+
                jedis.mget("key201","key202","key203","key204")); 
        System.out.println();
                
            
        //jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法
        System.out.println("======================String_2=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());       
       
        System.out.println("=============新增键值对时防止覆盖原先值=============");
        System.out.println("原先key301不存在时,新增key301:"+shardedJedis.setnx("key301", "value301"));
        System.out.println("原先key302不存在时,新增key302:"+shardedJedis.setnx("key302", "value302"));
        System.out.println("当key302存在时,尝试新增key302:"+shardedJedis.setnx("key302", "value302_new"));
        System.out.println("获取key301对应的值:"+shardedJedis.get("key301"));
        System.out.println("获取key302对应的值:"+shardedJedis.get("key302"));
        
        System.out.println("=============超过有效期键值对被删除=============");
        // 设置key的有效期,并存储数据 
        System.out.println("新增key303,并指定过期时间为2秒"+shardedJedis.setex("key303", 2, "key303-2second")); 
        System.out.println("获取key303对应的值:"+shardedJedis.get("key303")); 
        try{ 
            Thread.sleep(3000); 
        } 
        catch (InterruptedException e){ 
        } 
        System.out.println("3秒之后,获取key303对应的值:"+shardedJedis.get("key303")); 
        
        System.out.println("=============获取原值,更新为新值一步完成=============");
        System.out.println("key302原值:"+shardedJedis.getSet("key302", "value302-after-getset"));
        System.out.println("key302新值:"+shardedJedis.get("key302"));
        
        System.out.println("=============获取子串=============");
        System.out.println("获取key302对应值中的子串:"+shardedJedis.getrange("key302", 5, 7));         
    } 

Copy the code

      operation result:

Copy the code

======================String_1==========================
清空库中所有数据:OK
=============增=============
已新增的3个键值对如下:
value001
value002
value003
=============删=============
删除key003键值对:1
获取key003键对应的值:null
=============改=============
直接覆盖key001原来的数据:OK
获取key001对应的新值:value001-update
在key002原来值后面追加:21
获取key002对应的新值value002+appendString
=============增,删,查(多个)=============
一次性新增key201,key202,key203,key204及其对应值:OK
一次性获取key201,key202,key203,key204各自对应的值:[value201, value202, value203, value204]
一次性删除key201,key202:2
一次性获取key201,key202,key203,key204各自对应的值:[null, null, value203, value204]

======================String_2==========================
清空库中所有数据:OK
=============新增键值对时防止覆盖原先值=============
原先key301不存在时,新增key301:1
原先key302不存在时,新增key302:1
当key302存在时,尝试新增key302:0
获取key301对应的值:value301
获取key302对应的值:value302
=============超过有效期键值对被删除=============
新增key303,并指定过期时间为2秒OK
获取key303对应的值:key303-2second
3秒之后,获取key303对应的值:null
=============获取原值,更新为新值一步完成=============
key302原值:value302
key302新值:value302-after-getset
=============获取子串=============
获取key302对应值中的子串:302

Copy the code

    3) List function

Copy the code

private void ListOperate() 
    { 
        System.out.println("======================list=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB()); 

        System.out.println("=============增=============");
        shardedJedis.lpush("stringlists", "vector"); 
        shardedJedis.lpush("stringlists", "ArrayList"); 
        shardedJedis.lpush("stringlists", "vector");
        shardedJedis.lpush("stringlists", "vector");
        shardedJedis.lpush("stringlists", "LinkedList");
        shardedJedis.lpush("stringlists", "MapList");
        shardedJedis.lpush("stringlists", "SerialList");
        shardedJedis.lpush("stringlists", "HashList");
        shardedJedis.lpush("numberlists", "3");
        shardedJedis.lpush("numberlists", "1");
        shardedJedis.lpush("numberlists", "5");
        shardedJedis.lpush("numberlists", "2");
        System.out.println("所有元素-stringlists:"+shardedJedis.lrange("stringlists", 0, -1));
        System.out.println("所有元素-numberlists:"+shardedJedis.lrange("numberlists", 0, -1));
        
        System.out.println("=============删=============");
        // 删除列表指定的值 ,第二个参数为删除的个数(有重复时),后add进去的值先被删,类似于出栈
        System.out.println("成功删除指定元素个数-stringlists:"+shardedJedis.lrem("stringlists", 2, "vector")); 
        System.out.println("删除指定元素之后-stringlists:"+shardedJedis.lrange("stringlists", 0, -1));
        // 删除区间以外的数据 
        System.out.println("删除下标0-3区间之外的元素:"+shardedJedis.ltrim("stringlists", 0, 3));
        System.out.println("删除指定区间之外元素后-stringlists:"+shardedJedis.lrange("stringlists", 0, -1));
        // 列表元素出栈 
        System.out.println("出栈元素:"+shardedJedis.lpop("stringlists")); 
        System.out.println("元素出栈后-stringlists:"+shardedJedis.lrange("stringlists", 0, -1));
        
        System.out.println("=============改=============");
        // 修改列表中指定下标的值 
        shardedJedis.lset("stringlists", 0, "hello list!"); 
        System.out.println("下标为0的值修改后-stringlists:"+shardedJedis.lrange("stringlists", 0, -1));
        System.out.println("=============查=============");
        // 数组长度 
        System.out.println("长度-stringlists:"+shardedJedis.llen("stringlists"));
        System.out.println("长度-numberlists:"+shardedJedis.llen("numberlists"));
        // 排序 
        
        SortingParams sortingParameters = new SortingParams();
        sortingParameters.alpha();
        sortingParameters.limit(0, 3);
        System.out.println("返回排序后的结果-stringlists:"+shardedJedis.sort("stringlists",sortingParameters)); 
        System.out.println("返回排序后的结果-numberlists:"+shardedJedis.sort("numberlists"));
        // 子串:  start为元素下标,end也为元素下标;-1代表倒数一个元素,-2代表倒数第二个元素
        System.out.println("子串-第二个开始到结束:"+shardedJedis.lrange("stringlists", 1, -1));
        // 获取列表指定下标的值 
        System.out.println("获取下标为2的元素:"+shardedJedis.lindex("stringlists", 2)+"\n");
    } 

Copy the code

      operation result:

Copy the code

======================list==========================
清空库中所有数据:OK
=============增=============
所有元素-stringlists:[HashList, SerialList, MapList, LinkedList, vector, vector, ArrayList, vector]
所有元素-numberlists:[2, 5, 1, 3]
=============删=============
成功删除指定元素个数-stringlists:2
删除指定元素之后-stringlists:[HashList, SerialList, MapList, LinkedList, ArrayList, vector]
删除下标0-3区间之外的元素:OK
删除指定区间之外元素后-stringlists:[HashList, SerialList, MapList, LinkedList]
出栈元素:HashList
元素出栈后-stringlists:[SerialList, MapList, LinkedList]
=============改=============
下标为0的值修改后-stringlists:[hello list!, MapList, LinkedList]
=============查=============
长度-stringlists:3
长度-numberlists:4
返回排序后的结果-stringlists:[LinkedList, MapList, hello list!]
返回排序后的结果-numberlists:[1, 2, 3, 5]
子串-第二个开始到结束:[MapList, LinkedList]
获取下标为2的元素:LinkedList

Copy the code

    4) Set function

Copy the code

 private void SetOperate() 
    { 

        System.out.println("======================set=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());
        
        System.out.println("=============增=============");
        System.out.println("向sets集合中加入元素element001:"+jedis.sadd("sets", "element001")); 
        System.out.println("向sets集合中加入元素element002:"+jedis.sadd("sets", "element002")); 
        System.out.println("向sets集合中加入元素element003:"+jedis.sadd("sets", "element003"));
        System.out.println("向sets集合中加入元素element004:"+jedis.sadd("sets", "element004"));
        System.out.println("查看sets集合中的所有元素:"+jedis.smembers("sets")); 
        System.out.println();
        
        System.out.println("=============删=============");
        System.out.println("集合sets中删除元素element003:"+jedis.srem("sets", "element003"));
        System.out.println("查看sets集合中的所有元素:"+jedis.smembers("sets"));
        
        System.out.println();
        
        System.out.println("=============改=============");
        System.out.println();
        
        System.out.println("=============查=============");
        System.out.println("判断element001是否在集合sets中:"+jedis.sismember("sets", "element001"));
        System.out.println("循环查询获取sets中的每个元素:");
        Set set = jedis.smembers("sets");   
        Iterator it=set.iterator() ;   
        while(it.hasNext()){   
            Object obj=it.next();   
            System.out.println(obj);   
        }  
        System.out.println();
        
        System.out.println("=============集合运算=============");
        System.out.println("sets1中添加元素element001:"+jedis.sadd("sets1", "element001")); 
        System.out.println("sets1中添加元素element002:"+jedis.sadd("sets1", "element002")); 
        System.out.println("sets1中添加元素element003:"+jedis.sadd("sets1", "element003")); 
        System.out.println("sets1中添加元素element002:"+jedis.sadd("sets2", "element002")); 
        System.out.println("sets1中添加元素element003:"+jedis.sadd("sets2", "element003")); 
        System.out.println("sets1中添加元素element004:"+jedis.sadd("sets2", "element004"));
        System.out.println("查看sets1集合中的所有元素:"+jedis.smembers("sets1"));
        System.out.println("查看sets2集合中的所有元素:"+jedis.smembers("sets2"));
        System.out.println("sets1和sets2交集:"+jedis.sinter("sets1", "sets2"));
        System.out.println("sets1和sets2并集:"+jedis.sunion("sets1", "sets2"));
        System.out.println("sets1和sets2差集:"+jedis.sdiff("sets1", "sets2"));//差集:set1中有,set2中没有的元素
        
    }

Copy the code

      operation result:

Copy the code

======================set==========================
清空库中所有数据:OK
=============增=============
向sets集合中加入元素element001:1
向sets集合中加入元素element002:1
向sets集合中加入元素element003:1
向sets集合中加入元素element004:1
查看sets集合中的所有元素:[element001, element002, element003, element004]

=============删=============
集合sets中删除元素element003:1
查看sets集合中的所有元素:[element001, element002, element004]

=============改=============

=============查=============
判断element001是否在集合sets中:true
循环查询获取sets中的每个元素:
element001
element002
element004

=============集合运算=============
sets1中添加元素element001:1
sets1中添加元素element002:1
sets1中添加元素element003:1
sets1中添加元素element002:1
sets1中添加元素element003:1
sets1中添加元素element004:1
查看sets1集合中的所有元素:[element001, element002, element003]
查看sets2集合中的所有元素:[element002, element003, element004]
sets1和sets2交集:[element002, element003]
sets1和sets2并集:[element001, element002, element003, element004]
sets1和sets2差集:[element001]

Copy the code

    5) SortedSet function (ordered set)

Copy the code

private void SortedSetOperate() 
    { 
        System.out.println("======================zset=========================="); 
        // 清空数据 
        System.out.println(jedis.flushDB()); 
        
        System.out.println("=============增=============");
        System.out.println("zset中添加元素element001:"+shardedJedis.zadd("zset", 7.0, "element001")); 
        System.out.println("zset中添加元素element002:"+shardedJedis.zadd("zset", 8.0, "element002")); 
        System.out.println("zset中添加元素element003:"+shardedJedis.zadd("zset", 2.0, "element003")); 
        System.out.println("zset中添加元素element004:"+shardedJedis.zadd("zset", 3.0, "element004"));
        System.out.println("zset集合中的所有元素:"+shardedJedis.zrange("zset", 0, -1));//按照权重值排序
        System.out.println();
        
        System.out.println("=============删=============");
        System.out.println("zset中删除元素element002:"+shardedJedis.zrem("zset", "element002"));
        System.out.println("zset集合中的所有元素:"+shardedJedis.zrange("zset", 0, -1));
        System.out.println();
        
        System.out.println("=============改=============");
        System.out.println();
        
        System.out.println("=============查=============");
        System.out.println("统计zset集合中的元素中个数:"+shardedJedis.zcard("zset"));
        System.out.println("统计zset集合中权重某个范围内(1.0——5.0),元素的个数:"+shardedJedis.zcount("zset", 1.0, 5.0));
        System.out.println("查看zset集合中element004的权重:"+shardedJedis.zscore("zset", "element004"));
        System.out.println("查看下标1到2范围内的元素值:"+shardedJedis.zrange("zset", 1, 2));

    }

Copy the code

      operation result:

Copy the code

======================zset==========================
OK
=============增=============
zset中添加元素element001:1
zset中添加元素element002:1
zset中添加元素element003:1
zset中添加元素element004:1
zset集合中的所有元素:[element003, element004, element001, element002]

=============删=============
zset中删除元素element002:1
zset集合中的所有元素:[element003, element004, element001]

=============改=============

=============查=============
统计zset集合中的元素中个数:3
统计zset集合中权重某个范围内(1.0——5.0),元素的个数:2
查看zset集合中element004的权重:3.0
查看下标1到2范围内的元素值:[element004, element001]

Copy the code

    6) Hash function

Copy the code

private void HashOperate() 
    { 
        System.out.println("======================hash==========================");
        //清空数据 
        System.out.println(jedis.flushDB()); 
        
        System.out.println("=============增=============");
        System.out.println("hashs中添加key001和value001键值对:"+shardedJedis.hset("hashs", "key001", "value001")); 
        System.out.println("hashs中添加key002和value002键值对:"+shardedJedis.hset("hashs", "key002", "value002")); 
        System.out.println("hashs中添加key003和value003键值对:"+shardedJedis.hset("hashs", "key003", "value003"));
        System.out.println("新增key004和4的整型键值对:"+shardedJedis.hincrBy("hashs", "key004", 4l));
        System.out.println("hashs中的所有值:"+shardedJedis.hvals("hashs"));
        System.out.println();
        
        System.out.println("=============删=============");
        System.out.println("hashs中删除key002键值对:"+shardedJedis.hdel("hashs", "key002"));
        System.out.println("hashs中的所有值:"+shardedJedis.hvals("hashs"));
        System.out.println();
        
        System.out.println("=============改=============");
        System.out.println("key004整型键值的值增加100:"+shardedJedis.hincrBy("hashs", "key004", 100l));
        System.out.println("hashs中的所有值:"+shardedJedis.hvals("hashs"));
        System.out.println();
        
        System.out.println("=============查=============");
        System.out.println("判断key003是否存在:"+shardedJedis.hexists("hashs", "key003"));
        System.out.println("获取key004对应的值:"+shardedJedis.hget("hashs", "key004"));
        System.out.println("批量获取key001和key003对应的值:"+shardedJedis.hmget("hashs", "key001", "key003")); 
        System.out.println("获取hashs中所有的key:"+shardedJedis.hkeys("hashs"));
        System.out.println("获取hashs中所有的value:"+shardedJedis.hvals("hashs"));
        System.out.println();
              
    }

Copy the code

      operation result:

Copy the code

======================hash==========================
OK
=============增=============
hashs中添加key001和value001键值对:1
hashs中添加key002和value002键值对:1
hashs中添加key003和value003键值对:1
新增key004和4的整型键值对:4
hashs中的所有值:[value001, value002, value003, 4]

=============删=============
hashs中删除key002键值对:1
hashs中的所有值:[value001, value003, 4]

=============改=============
key004整型键值的值增加100:104
hashs中的所有值:[value001, value003, 104]

=============查=============
判断key003是否存在:true
获取key004对应的值:104
批量获取key001和key003对应的值:[value001, value003]
获取hashs中所有的key:[key004, key003, key001]
获取hashs中所有的value:[value001, value003, 104]

Copy the code

Third, the commonly used commands
    1) connection Operation Command
    quit: close the connection (Connection)
    auth: simple password authentication
    help cmd: View cmd help, for example: Help quit
    
    2) Persistence
    save: synchronize data saved to disk
    bgsave: the data asynchronously save to disk
    lastsave: return to the last successful save data to disk Unix timestamp
    shundown: synchronize data saved to disk, and then close the service
    
    3) remote service control
    info: providing information and server statistics
    monitor: real-time dump received request
    slaveof: change the copy policy settings
    config: configure Redis server at runtime
    
    4) command value operation
    exists (key): to confirm a key if there is
    del (key): delete a key
    of the type (key): return type of
    keys (pattern): returns all key satisfies a predetermined pattern of
    randomkey: returns a random key space
    keyrename (oldname, newname): rename key
    the dbsize: returns the number of key database
    expire: Time to set a key of (S)
    ttl: Time to get a key of
    select (index): query by index
    move (key, dbindex): Moves the current database key to dbindex database
    flushdb: Delete the currently selected database All the key
    flushall: delete all key all databases
    
    5) String
    the SET (key, value): to the database name given to the value of the value for the key's string
    GET (key): returns the database name is key string of value
    getset (key, value): the key to the name given to a string on the value
    mget (key1, key2, ..., N key): returns the string library value multiple of
    setnx (key, value): add a string, the name is key value of value
    SETEX (Key, time, value): the library was added to the string, set the expiration time time
    MSET (Key N, N value): bulk setting values of a plurality of string
    msetnx (key N, value N) : If All key name string I are absent
    incr (key): name by a key operation of the string
    incrby (key, integer): name is key string increases Integer
    DECR (key): name is key string decremented
    decrby (key, integer): name is key string reduced Integer
    the append (key, value): name the additional key value string value
    substr (key, Start, End): returns the name of the key value of the sub-string string
    
    . 6) List 
    RPUSH (key, value): add the key list in the end of the name of a value of the value element
    lpush (key, value): adding name is key list header element value of a value
    llen (key): returns the name is key length of the list
    lrange (key, start, end) : returns the name is key list in between the start to elemental End
    LTRIM (key, start, End): intercepting name is key list
    the lindex (key, index): returns the name of the key element in list index position
    lset (key, index, value) : the name assigned to the key elements of the list in the index position
    lrem (key, count, value) : delete key to count median value of list elements
    lpop (key): to go back and delete the name of the first element in the list is the key
    rpop (key): to go back and delete the name of the last element of the list of key
    blpop (key1, key2, ... key N, timeout): block version lpop command.
    brpop (key1, key2, ... key N, timeout): block version of rpop.
    rpoplpush (srckey, dstkey): Returns the name and remove the last element of the list of srckey,

              And adds the element to the list of named dstkey head of
    
    the Set 7)
    Sadd (key, member): add elements to key member in the set to name
    srem (key, member): delete the name of the key elements in the set Member
    SPOP (key): to go back and delete random name for the key elements of the set in a
    smove (srckey, dstkey, member) : moved to the collection element
    scard (key): returns the name for the set of key base
    sismember (key, member) : member whether the name is set of key elements of
    sinter (key1, key2, ... key N): intersection of
    sinterstore (dstkey, (keys)) : intersection of the intersection and save to the collection dstkey of
    sunion (key1, (keys) ): find and set
    sunionstore (dstkey, (keys)) : find and set to set and save and set the dstkey
    sdiff (key1, (keys)) : differencing set
    sdiffstore (dstkey, (keys)) : set differencing and save the difference set to the collection dstkey
    smembers (key): returns the name of the set of all key elements of
    srandmember (key): random and returns the name of a key element of the set
    
    . 8) the Hash
    HSET (key, field, value): To the name is key hash elements field
    hget (key, field): Returns the name value in the hash field corresponding to key
    hmget (key, (fields)) : Returns name is key hash in field I corresponding value
    hmset (key, (Fields)): the name is key hash additive element field 
    hincrby (key, field, Integer): increase name is key hash in the field's value Integer
    hexists (key, field): a name for the existence of domain key for the field of the key of the hash in
    hdel (key, field): delete the name is key in the hash key for the field of domain
    hlen (key): returns the name is key the number of elements in the hash
    hkeys (key): the hash key and returns the name of all the keys
    hvals (key): returns the name is key in the hash of all keys corresponding value
    hgetall (key): the hash key and returns the name of all the key (field) and its corresponding value

Guess you like

Origin blog.csdn.net/weixin_43996899/article/details/91986275