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("\n");
    }

    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("\n");
    }
    
    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("\n");
    }

    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) + "\n");
        jedis.close();
        shardedJedis.close();
        System.out.println("*******************************listOperate end*******************************");
        System.out.println("\n");
    }

    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("\n");
    }

    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("\n");

    }

    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*******************************

 


免責聲明!

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



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