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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM