Redis學習筆記(5)-Set

來源:互聯網
上載者:User

標籤:

package cn.com;import java.util.HashMap;import java.util.Map;import java.util.Set;import redis.clients.jedis.Jedis;/** * 集合的所有操作方法 *  * */public class Redis_Set {public static Jedis redis = new Jedis("localhost", 6379);// 串連redispublic static void zadd(){Map<String,Double> map=new HashMap<String,Double>();redis.zadd("user",map); }/** * 將一個或多個  元素加入到集合 key 當中,已經存在於集合的 member 元素將被忽略。 * */public static void sadd(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","d","e","f");Set<String> setList=redis.smembers("user");for(String s:setList){System.out.println(s);}}/** * SCARD key * 返回集合 key 的基數(集合中元素的數量) * */public static void scard(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","d","e","f");Long number=redis.scard("user");System.out.println(number);}/** * SDIFF key [key ...] 求差集 * 返回一個集合的全部成員,該集合是所有給定集合之間的差集。 * 不存在的 key 被視為空白集。 * 相當月user減去user1 剩下的 user 元素 * */public static void sdiff(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","z");redis.sadd("user1", "a","c","d","f");Set<String> setList=redis.sdiff("user","user1");for(String s:setList){System.out.println(s);}}/** * SDIFFSTORE destination key [key ...]求差集 將結果放入新的結合中 * 這個命令的作用和 SDIFF 類似,但它將結果儲存到 destination 集合,而不是簡單地返回結果集。 * 如果 destination 集合已經存在,則將其覆蓋。 * destination 可以是 key 本身。 * N 是所有給定集合的成員數量之和. * 例如:以下例子是 取出 user中在user1 不包含的元素 也就是(zzz)在user1 中不存在 * */public static void sdiffstore(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz");redis.sadd("user1", "a","b","c","d","e","f"); long size=redis.sdiffstore("newuser","user","user1");System.out.println("size:"+size);Set<String> setList=redis.smembers("newuser");for(String s:setList){System.out.println(s);}}/** *  SINTER key [key ...] 求交集 * 返回一個集合的全部成員,該集合是所有給定集合的交集。 * 不存在的 key 被視為空白集。 * 當給定集合當中有一個空集時,結果也為空白集(根據集合運算定律)。 * */public static void sinter(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz");redis.sadd("user1", "a","b","c","d","e","f");Set<String> setList=redis.sinter("user","user1");for(String s:setList){System.out.println(s);}}/** *  SINTER key [key ...] 求交集 跟sinter區別在於是將差集的結果集放入新的數組中 如下的:newuser * 返回一個集合的全部成員,該集合是所有給定集合的交集。 * 不存在的 key 被視為空白集。 * 當給定集合當中有一個空集時,結果也為空白集(根據集合運算定律)。 * */public static void sinterstore(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz");redis.sadd("user1", "a","b","c","d","e","f");long size=redis.sinterstore("newuser","user","user1");System.out.println("交集的大小:"+size);Set<String> setList=redis.smembers("newuser");for(String s:setList){System.out.println(s);}}/** * SUNION key [key ...] * 返回一個集合的全部成員,該集合是所有給定集合的並集。 * 不存在的 key 被視為空白集。 * */public static void sunion(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz");redis.sadd("user1", "a","b","c","d","e","f");Set<String> setList=redis.sunion("user","user1");for(String s:setList){System.out.println(s);}}/** * SUNION key [key ...]  將兩個集合的並集放入新的結合中 newuser * 返回一個集合的全部成員,該集合是所有給定集合的並集。 * 不存在的 key 被視為空白集。 * */public static void sunionstore(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz");redis.sadd("user1", "a","b","c","d","e","f");long l=redis.sunionstore("newuser","user","user1");Set<String> setList=redis.smembers("newuser");for(String s:setList){System.out.println(s);}}/** * SISMEMBER key member *判斷 member 元素是否集合 key 的成員。 * */public static void sismember(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz"); boolean b=redis.sismember("user", "a");boolean b1=redis.sismember("user", "不存在哦");System.out.println("返回一個 true 跟 false");System.out.println(b);System.out.println(b1);}/** * 擷取集合對象 * */public static void smembers(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","d","e","f");Set<String> setList=redis.smembers("user");for(String s:setList){System.out.println(s);}}/** * SMOVE source destination member * SMOVE 是原子性操作。 * @param srckey 源集合key * @param dstkey 目的地組合key * @param member 要移動的元素 * 將源集合中的 元素member 移動到目的地組合中 * 傳回值:  * 如果 member 元素被成功移除,返回 1 。     * 如果 member 元素不是 source 集合的成員,並且沒有任何操作對 destination 集合執行,那麼返回 0 。 */public static void smove(){redis.flushDB();//清除資料redis.sadd("user", "a","b","c","zzzz");redis.sadd("user1",  "d","e","f");redis.smove("user", "user1", "zzzz"); System.out.println("======user剩下的元素應該是 a,b,c======");Set<String> setList=redis.smembers("user");for(String s:setList){System.out.println(s);}System.out.println("======user 1的元素應該是 d,e,f,zzz======");Set<String> setList1=redis.smembers("user1");for(String s:setList1){System.out.println(s);}}/** * SPOP key * 移除並返回集合中的一個隨機元素。 * 如果只想擷取一個隨機元素,但不想該元素從集合中被移除的話,可以使用 SRANDMEMBER 命令。 * */public static void spop(){redis.flushDB();//清除資料redis.sadd("user", "1","2","3","4","5","6","7");String s=redis.spop("user");System.out.println("隨機彈出並移除的元素:"+s);Set<String> setList=redis.smembers("user");for(String str:setList){System.out.println(str);}}/** * 如果命令執行時,只提供了 key 參數,那麼返回集合中的一個隨機元素。 * */public static void srandmember(){redis.flushDB();//清除資料redis.sadd("user", "1","2","3","4","5","6","7");String s=redis.srandmember("user");System.out.println("隨機彈出不刪除的元素:"+s); Set<String> setList=redis.smembers("user");for(String str:setList){System.out.println(str);}}/** * SREM key member [member ...] * 移除集合 key 中的一個或多個 member 元素,不存在的 member 元素會被忽略。 * 當 key 不是集合類型,返回一個錯誤。 * */public static void srem(){redis.flushDB();//清除資料redis.sadd("user", "1","2","3","4","5","6","7");redis.srem("user", "1","3","5");//刪除1,3,5Set<String> setList=redis.smembers("user");for(String str:setList){System.out.println(str);}}public static void main(String [] args){sunionstore();}}

  

Redis學習筆記(5)-Set

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.