• java操作redis学习(一):安装及连接


    文章参考自:http://www.cnblogs.com/edisonfeng/p/3571870.html,在此基础上进行了修改。

    一、下载安装Redis

    redis官网显示暂时不支持Windows平台,如果需要的话,使用微软的开源组织开发的64为版

    点击Learn more进入github,选择发布版进行下载下载

     这里使用最新版,解压后的目录结构:

    几个exe程序的功能:    

      redis-benchmark.exe性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).

      redis-check-aof.exe:更新日志检查

      redis-check-dump.exe本地数据库检查

      redis-cli.exe客户端

      redis-server.exe服务端

    将文件夹路径加入环境变量(不添加的话就直接cmd进入该路径),然后cmd运行命令:redis-server启动

    不关闭此控制台的情况下,另外打开一个控制台,输入命令:redis-cli ping 进行测试,收到PONG

    二、下载Jedis.jar 

    官网上描述Java操作Redis可以通过Jedis也可以通过Lettuce,本例中使用Jedis。

    https://github.com/xetorthio/jedis/releases

    下载下来后是源文件的格式。。。需要编译成JAR包使用

     

    使用maven命令进行编译,进入该目录,使用命令:mvn install -Dmaven.test.skip,出现BUILD SUCCESS表示编译成功。

    PS:哪位大神能帮我解释一下我使用mvn clean package命令进行编译打包会报错,最后不成功。

    三、Java项目进行基本操作:

     结构目录:

    ReidsUtils.java(工具类,提供获取Jedis和SharedJedis的入口)

    package com.yoki.edu.utils;
    
    import java.util.ArrayList;
    import java.util.List;
    
    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;
    
    public class RedisUtils {
        
    //    private Jedis jedis;// 非切片额客户端连接
        private static JedisPool jedisPool;// 非切片连接池
    //    private ShardedJedis shardedJedis;// 切片额客户端连接
        private static ShardedJedisPool shardedJedisPool;// 切片连接池
        
        static{
            // 初始化非切片池
            JedisPoolConfig config = new JedisPoolConfig();
            //setMaxActive在commons-pool2-2.4.2.jar不适用,改为了setMaxTotal
            /* 源码注释
             * Sets the cap on the number of objects that can be allocated by the pool
             * (checked out to clients, or idle awaiting checkout) at a given time. Use
             * a negative value for no limit.
             */
    //        config.setMaxActive(20); 
            config.setMaxTotal(20);
            config.setMaxIdle(5);
            /*setMaxWait在commons-pool2-2.4.2.jar不适用,改为了setMaxWaitMillis*/
    //        config.setMaxWait(1000l); 
            config.setMaxWaitMillis(1000l);
            config.setTestOnBorrow(false);
    
            jedisPool = new JedisPool(config, "127.0.0.1", 6379);
            
            //初始化非切片池
            // slave链接
            List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
            shards.add(new JedisShardInfo("127.0.0.1", 6379, "master"));
    
            // 构造池
            shardedJedisPool = new ShardedJedisPool(config, shards);
        }
        
        public static Jedis getJedis(){
            Jedis jedis = jedisPool.getResource();
            return jedis ;
        }
        
        public static ShardedJedis getShardedJedis(){
            ShardedJedis shardedJedis = shardedJedisPool.getResource();
            return shardedJedis ;
        }
    }

     RedisOperator.java(Redis的操作类)

    package com.yoki.edu.main.dao;
    
    import java.util.Iterator;
    import java.util.Set;
    
    import com.yoki.edu.utils.RedisUtils;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.ShardedJedis;
    import redis.clients.jedis.SortingParams;
    
    public class RedisOperator {
    
        public void flushDatabase() {
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("清空库中所有数据:" + jedis.flushDB());
            jedis.close();
            shardedJedis.close();
        }
        
        public void flushDatabase(Jedis jedis) {
            System.out.println("清空库中所有数据:" + jedis.flushDB());
        }
    
        public void keyOperate() {
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************keyOperate start******************************");
            // 清空数据
            flushDatabase(jedis) ;
            // 判断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<String> keys = jedis.keys("*");
            Iterator<String> 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"));
            /*
             * 一些其他方法:1、修改键名:jedis.rename("key6", "key0");
             * 2、将当前db的key移动到给定的db当中:jedis.move("foo", 1)
             */
            jedis.close();
            shardedJedis.close();
            System.out.println("*******************************keyOperate end*******************************");
            System.out.println("
    ");
        }
    
        public void stringOperate() {
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************stringOperate start******************************");
            // 清空数据
            flushDatabase(jedis) ;
    
            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("=============增,删,查(多个)=============");
            /**
             * mset,mget同时新增,修改,查询多个键值对 等价于: jedis.set("name","ssss");
             * jedis.set("jarorwar","xxxx");
             */
            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.close();
            shardedJedis.close();
            System.out.println("*******************************stringOperate end*******************************");
            System.out.println("
    ");
        }
        
        public void stringOperate2() {
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************stringOperate 2 start******************************");
            // jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法
            // 清空数据
            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));
            jedis.close();
            shardedJedis.close();
            System.out.println("*******************************stringOperate 2 end*******************************");
            System.out.println("
    ");
        }
    
        public void listOperate() {
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************listOperate start******************************");
            // 清空数据
            flushDatabase(jedis) ;
    
            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"));
            // 排序
            /*
             * list中存字符串时必须指定参数为alpha,如果不使用SortingParams,而是直接使用sort("list"),
             * 会出现"ERR One or more scores can't be converted into double"
             */
            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) + "
    ");
            jedis.close();
            shardedJedis.close();
            System.out.println("*******************************listOperate end*******************************");
            System.out.println("
    ");
        }
    
        public void setOperate() {
    
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************setOperate start******************************");
            // 清空数据
            flushDatabase(jedis) ;
    
            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("sets集合中任意位置的元素出栈:"+jedis.spop("sets"));//注:
             * 出栈元素位置居然不定?--无实际意义
             * 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<String> set = jedis.smembers("sets");
            Iterator<String> 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中没有的元素
            jedis.close();
            shardedJedis.close();
            System.out.println("*******************************setOperate end*******************************");
            System.out.println("
    ");
        }
    
        public void sortedSetOperate() {
    
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************sortedSetOperate start******************************");
            // 清空数据
            flushDatabase(jedis) ;
    
            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));
    
            jedis.close();
            shardedJedis.close();
            System.out.println("*******************************sortedSetOperate end*******************************");
            System.out.println("
    ");
    
        }
    
        public void hashOperate() {
            Jedis jedis = RedisUtils.getJedis();
            ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
            System.out.println("******************************hashOperate start******************************");
            // 清空数据
            flushDatabase(jedis) ;
    
            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();
    
            jedis.close();
            shardedJedis.close();
            System.out.println("*******************************hashOperate end*******************************");
    
        }
    
    }

    RunMain.java(程序主入口)

    package com.yoki.edu.main;
    
    import com.yoki.edu.main.dao.RedisOperator;
    
    public class RunMain {
    
        public static void main(String[] args) {
            RedisOperator op = new RedisOperator() ;
            op.flushDatabase();
            op.KeyOperate();
            op.StringOperate();
            op.ListOperate();
            op.SetOperate();
            op.SortedSetOperate();
            op.HashOperate();
        }
        
    }

    注意:程序运行前,Redis(命令:redis-server)必须先打开,不然会出现链接错误

    运行结果如下:

    ******************************keyOperate start******************************
    清空库中所有数据: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
    *******************************keyOperate end*******************************
    
    ******************************stringOperate start****************************** 清空库中所有数据: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] *******************************stringOperate end*******************************
    ******************************stringOperate 2 start****************************** 清空库中所有数据: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 *******************************stringOperate 2 end*******************************
    ******************************listOperate start****************************** 清空库中所有数据: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 *******************************listOperate end*******************************
    ******************************setOperate start****************************** 清空库中所有数据:OK =============增============= 向sets集合中加入元素element001:1 向sets集合中加入元素element002:1 向sets集合中加入元素element003:1 向sets集合中加入元素element004:1 查看sets集合中的所有元素:[element004, element003, element002, element001] =============删============= 集合sets中删除元素element003:1 查看sets集合中的所有元素:[element004, element002, element001] =============改============= =============查============= 判断element001是否在集合sets中:true 循环查询获取sets中的每个元素: element004 element002 element001 =============集合运算============= sets1中添加元素element001:1 sets1中添加元素element002:1 sets1中添加元素element003:1 sets1中添加元素element002:1 sets1中添加元素element003:1 sets1中添加元素element004:1 查看sets1集合中的所有元素:[element003, element002, element001] 查看sets2集合中的所有元素:[element004, element003, element002] sets1和sets2交集:[element003, element002] sets1和sets2并集:[element003, element001, element002, element004] sets1和sets2差集:[element001] *******************************setOperate end*******************************
    ******************************sortedSetOperate start****************************** 清空库中所有数据: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] *******************************sortedSetOperate end*******************************
    ******************************hashOperate start****************************** 清空库中所有数据: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] *******************************hashOperate end*******************************
  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/FlyingPuPu/p/6919860.html
Copyright © 2020-2023  润新知