zoukankan      html  css  js  c++  java
  • java redis client jedis 测试

    package cn.byref.demo1;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    import junit.framework.TestCase;
    import redis.clients.jedis.Jedis;
    
    public class RedisClientTest extends TestCase {
    
        private Jedis getJedis() {
            Jedis jedis = new Jedis("10.68.113.103", 6379);
            return jedis;
        }
    
        /**
         * 设置字符串值
         */
        public void test_string_set() {
            Jedis jedis = getJedis();
            jedis.set("age", "1000");
            System.out.println(jedis.get("age"));
        }
    
        /**
         * 设置key的过期时间: setex(key,expire,value)
         */
        public void test_strign_setex() {
            Jedis j = getJedis();
            j.setex("customer", 2, "张铭");
            System.out.println("customer:" + j.get("customer"));
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("customer sleep 3 second =" + j.get("customer"));
        }
    
        /**
         * 对已有key的值追加字符串
         */
        public void test_string_append() {
            Jedis jedis = getJedis();
            jedis.append("age", "append");
            System.out.println(jedis.get("age"));
        }
    
        /**
         * 是否存在某个key:exists(String key)
         */
        public void test_exists_key() {
            Jedis j = getJedis();
            boolean exists = j.exists("age");
            System.out.println("age exists:" + exists);
    
            exists = j.exists("name");
            System.out.println("name exists:" + exists);
        }
    
        /**
         * 获取所有的key
         */
        public void test_get_all_keys() {
            Jedis j = getJedis();
            Set<String> keys = j.keys("*");
            for (String key : keys) {
                System.out.println("key=" + key);
            }
        }
    
        /**
         * 过期测试
         */
        public void test_expire() {
            Jedis j = getJedis();
            String key = "username";
            j.set(key, "张三");
    
            System.out.println(key + " exists=" + j.exists(key));
    
            // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
            System.out.println(key + " ttl=" + j.ttl(key));
    
            // 设置过期时间,单位秒
            j.expire(key, 5);
    
            // 休眠2秒
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            // 查看key过期时间
            System.out.println(key + " sleep 2 second ttl=" + j.ttl(key));
    
            // 移除key的生存时间
            j.persist(key);
    
            // 查看key过期时间
            System.out.println(key + " persist ttl=" + j.ttl(key));
        }
    
        /**
         * map类型操作 hmset(key,map)
         */
        public void test_map_set() {
            Map<String, String> map = new HashMap<String, String>();
            String key = "user score";
            map.put("username", "zhansan");
            map.put("age", "20");
            map.put("address", "北京");
    
            Jedis j = getJedis();
            j.hmset("user score", map);
    
            List<String> values = j.hmget(key, "age", "username", "address");
            System.out.println("users list = " + values);
    
            j.hdel(key, "age");
            System.out.println("hdel users list = " + values);
            System.out.println("map len = " + j.hlen(key));
            System.out.println("all keys = " + j.hkeys(key));
            System.out.println("all values = " + j.hvals(key));
    
            System.out.println("*** iterate all keys ***");
            Set<String> mapKeys = j.hkeys(key);
            for (String mapKey : mapKeys) {
                // String val = j.hget(key, mapKey); // 返回String
                List<String> val = j.hmget(key, mapKey); // 返回List<String>
                System.out.println(mapKey + " = " + val);
            }
    
        }
    
        /**
         * List类型操作:lpush,rpush,lset,rset,lrange,lrem
         */
        public void test_list_set() {
            Jedis j = getJedis();
            
            String key = "java collection";
            j.del(key);
            j.lpush(key, "Collection");
            j.lpush(key, "List");
            j.lpush(key, "Vector");
            j.lpush(key, "Map");
    
            System.out.println("list len = " + j.llen(key));
            
            System.out.println("lpush lrange(0,-1) = " + j.lrange(key, 0, -1));
            System.out.println("lpush lrange(0,2) = " + j.lrange(key, 0, 1));
            
            j.del(key);
            j.lpush(key, "Collection");
            j.lpush(key, "List");
            j.rpush(key, "Vector");
            j.rpush(key, "Map");
            j.rpush(key, "List");
            System.out.println("rpush lrange(0,-1) = " + j.lrange(key, 0, -1));
            System.out.println(key + " ttl=" + j.ttl(key));
            
            j.lrem(key,1,"List"); // lrem(key,count,value) count表示有重复的值时,删除几次
            System.out.println("lrem lrange(0,-1) = " + j.lrange(key, 0, -1)); //[Collection, Vector, Map, List]
            
            j.lset(key, 1, "NewList");
            System.out.println("lrem lrange(0,-1) = " + j.lrange(key, 0, -1));
            
            
        }
    }

    常用命令
        1)连接操作命令
        quit:关闭连接(connection)
        auth:简单密码认证
        help cmd: 查看cmd帮助,例如:help quit
        
        2)持久化
        save:将数据同步保存到磁盘
        bgsave:将数据异步保存到磁盘
        lastsave:返回上次成功将数据保存到磁盘的Unix时戳
        shundown:将数据同步保存到磁盘,然后关闭服务
        
        3)远程服务控制
        info:提供服务器的信息和统计
        monitor:实时转储收到的请求
        slaveof:改变复制策略设置
        config:在运行时配置Redis服务器
        
        4)对value操作的命令
        exists(key):确认一个key是否存在
        del(key):删除一个key
        type(key):返回值的类型
        keys(pattern):返回满足给定pattern的所有key
        randomkey:随机返回key空间的一个
        keyrename(oldname, newname):重命名key
        dbsize:返回当前数据库中key的数目
        expire:设定一个key的活动时间(s)
        ttl:获得一个key的活动时间
        select(index):按索引查询
        move(key, dbindex):移动当前数据库中的key到dbindex数据库
        flushdb:删除当前选择数据库中的所有key
        flushall:删除所有数据库中的所有key
        
        5)String
        set(key, value):给数据库中名称为key的string赋予值value
        get(key):返回数据库中名称为key的string的value
        getset(key, value):给名称为key的string赋予上一次的value
        mget(key1, key2,…, key N):返回库中多个string的value
        setnx(key, value):添加string,名称为key,值为value
        setex(key, time, value):向库中添加string,设定过期时间time
        mset(key N, value N):批量设置多个string的值
        msetnx(key N, value N):如果所有名称为key i的string都不存在
        incr(key):名称为key的string增1操作
        incrby(key, integer):名称为key的string增加integer
        decr(key):名称为key的string减1操作
        decrby(key, integer):名称为key的string减少integer
        append(key, value):名称为key的string的值附加value
        substr(key, start, end):返回名称为key的string的value的子串
        
        6)List 
        rpush(key, value):在名称为key的list尾添加一个值为value的元素
        lpush(key, value):在名称为key的list头添加一个值为value的 元素
        llen(key):返回名称为key的list的长度
        lrange(key, start, end):返回名称为key的list中start至end之间的元素
        ltrim(key, start, end):截取名称为key的list
        lindex(key, index):返回名称为key的list中index位置的元素
        lset(key, index, value):给名称为key的list中index位置的元素赋值
        lrem(key, count, value):删除count个key的list中值为value的元素
        lpop(key):返回并删除名称为key的list中的首元素
        rpop(key):返回并删除名称为key的list中的尾元素
        blpop(key1, key2,… key N, timeout):lpop命令的block版本。
        brpop(key1, key2,… key N, timeout):rpop的block版本。
        rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,

                  并将该元素添加到名称为dstkey的list的头部
        
        7)Set
        sadd(key, member):向名称为key的set中添加元素member
        srem(key, member) :删除名称为key的set中的元素member
        spop(key) :随机返回并删除名称为key的set中一个元素
        smove(srckey, dstkey, member) :移到集合元素
        scard(key) :返回名称为key的set的基数
        sismember(key, member) :member是否是名称为key的set的元素
        sinter(key1, key2,…key N) :求交集
        sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
        sunion(key1, (keys)) :求并集
        sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
        sdiff(key1, (keys)) :求差集
        sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
        smembers(key) :返回名称为key的set的所有元素
        srandmember(key) :随机返回名称为key的set的一个元素
        
        8)Hash
        hset(key, field, value):向名称为key的hash中添加元素field
        hget(key, field):返回名称为key的hash中field对应的value
        hmget(key, (fields)):返回名称为key的hash中field i对应的value
        hmset(key, (fields)):向名称为key的hash中添加元素field 
        hincrby(key, field, integer):将名称为key的hash中field的value增加integer
        hexists(key, field):名称为key的hash中是否存在键为field的域
        hdel(key, field):删除名称为key的hash中键为field的域
        hlen(key):返回名称为key的hash中元素个数
        hkeys(key):返回名称为key的hash中所有键
        hvals(key):返回名称为key的hash中所有键对应的value
        hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

  • 相关阅读:
    Element-ui 复选框使用问题
    脚手架 oss 直传
    门外汉 avue使用
    cookie关闭浏览器清除
    关于(Incorrect string value: 'xF0x9Fx8ExBE' for column 'xxx' at row)报错
    扫码登录
    微信支付
    vue 腾讯地图 javaScriptAPI GL 多个markers自适应 (3)
    vue props 一次性传多个值
    vuex 的简单使用
  • 原文地址:https://www.cnblogs.com/byxxw/p/5822589.html
Copyright © 2011-2022 走看看