redis中set的主要操作函式
redis set 是string型別物件的無序集合,set不管儲存多少物件,對儲存物件的add,remove和test操作的時間複雜度是O(1)。set最多能包含 232 - 1 個member。
1、增加
語法:sadd key member[member...]
解釋:對特定key的set增加一個或多個值,返回是增加元素的個數。注意:對同一個member多次add,set中只會保留一份。
- [[email protected] ~]# redis-cli
- redis 127.0.0.1:6379> sadd stu zhangsan lisi wangwu #新增
- (integer) 3
- redis 127.0.0.1:6379> smembers stu #得到set的所有member
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan"
- redis 127.0.0.1:6379> sadd stu zhangsan #增加存在的member
- (integer) 0
- redis 127.0.0.1:6379> smembers stu
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan"
- redis 127.0.0.1:6379> sadd tech wangwu liming joe
- (integer) 3
- redis 127.0.0.1:6379> sadd tech jim
- (integer) 1
- redis 127.0.0.1:6379> smembers tech
- 1) "jim"
- 2) "liming"
- 3) "wangwu"
- 4) "joe"
2、查詢
a)smembers
語法:smembers key
解釋:獲取set中的所有member
- redis 127.0.0.1:6379> smembers stu
- 1) "wangwu"
- 2) "lisi"
- 3) "zhangsan"
- redis 127.0.0.1:6379> smembers tech
- 1) "jim"
- 2) "liming"
- 3) "wangwu"
- 4) "joe"
b)sismember
語法:sismember key member
解釋:判斷值是否是set的member。如果值是set的member返回1,否則,返回0
- redis 127.0.0.1:6379> sismember tech jim #jim 是set的member
- (integer) 1
- redis 127.0.0.1:6379> sismember tech jim001 #jim001 不是set的member
- (integer) 0
語法:scard key
解釋:返回set的member個數,如果set不存在,返回0
- redis 127.0.0.1:6379> scard tech # tech 存在
- (integer) 4
- redis 127.0.0.1:6379> scard stud #stud 不存在
- (integer) 0
- redis 127.0.0.1:6379> scard stu
- (integer) 4
語法:srandmember key
解釋:從set中返回一個隨機member
- redis 127.0.0.1:6379> srandmember stu
- "zhangsan"
- redis 127.0.0.1:6379> srandmember stu
- "zhangsan"
- redis 127.0.0.1:6379> srandmember stu
- "wangwu"
- redis 127.0.0.1:6379> srandmember stu
- "zhangsan01"
3、刪除
a)spop
語法:spop key
解釋:移除並返回一個隨機member
- redis 127.0.0.1:6379> smembers stu #pop前
- 1) "zhangsan01"
- 2) "wangwu"
- 3) "lisi"
- 4) "zhangsan"
- redis 127.0.0.1:6379> spop stu #移除一個隨機member
- "lisi"
- redis 127.0.0.1:6379> smembers stu #pop後
- 1) "zhangsan01"<span style="white-space:pre;"> </span>
- 2) "wangwu"
- 3) "zhangsan"
語法:srem key member [member ...]
解釋:移除一個或多個member
- redis 127.0.0.1:6379> smembers tech
- 1) "jim"
- 2) "liming"
- 3) "wangwu"
- 4) "joe"
- redis 127.0.0.1:6379> srem tech jim #移除jim
- (integer) 1
- redis 127.0.0.1:6379> smembers tech
- 1) "liming"
- 2) "wangwu"
- 3) "joe"
- redis 127.0.0.1:6379> srem tech liming joe #移除多個member
- (integer) 2
- redis 127.0.0.1:6379> smembers tech
- 1) "wangwu"
語法:smove source destination member
解釋:將source中的member移動到destination
- redis 127.0.0.1:6379> smembers tech #smove前
- 1) "wangwu"
- redis 127.0.0.1:6379> smembers stu
- 1) "zhangsan01"
- 2) "wangwu"
- 3) "zhangsan"
- redis 127.0.0.1:6379> smove stu tech zhangsan #將zhangsan 從stu移動到tech
- (integer) 1
- redis 127.0.0.1:6379> smembers stu #smove後
- 1) "zhangsan01"
- 2) "wangwu"
- redis 127.0.0.1:6379> smembers tech
- 1) "wangwu"
- 2) "zhangsan"
4、其他
a)並集
語法:sunion key[key...]
解釋:多個set的並集
- redis 127.0.0.1:6379> smembers stu
- 1) "zhangsan01"
- 2) "wangwu"
- redis 127.0.0.1:6379> sunion stu
- 1) "zhangsan01"
- 2) "wangwu"
- redis 127.0.0.1:6379> smembers tech
- 1) "wangwu"
- 2) "zhangsan"
- redis 127.0.0.1:6379> sunion stu tech
- 1) "zhangsan01"
- 2) "wangwu"
- 3) "zhangsan"
b)把並集結果儲存到set
語法:sunionstore destination key [key ...]
解釋:求多個set並集,並把結果儲存到destination
- redis 127.0.0.1:6379> sunionstore same stu tech #把stu tech並集結果儲存在union
- (integer) 3
- redis 127.0.0.1:6379> smembers union
- 1) "zhangsan01"
- 2) "wangwu"
- 3) "zhangsan"
c)交集
語法:sinter key[key...]
解釋:多個set的交集
- redis 127.0.0.1:6379> smembers stu
- 1) "zhangsan01"
- 2) "wangwu"
- redis 127.0.0.1:6379> smembers tech
- 1) "wangwu"
- 2) "zhangsan"
- redis 127.0.0.1:6379> sinter stu tech
- 1) "wangwu"
d)把交集結果儲存到指定set
語法:sinterstore destination key [key ...]
解釋:把多個set的交集結果儲存到destination
- redis 127.0.0.1:6379> sinterstore inter stu tech
- (integer) 1
- redis 127.0.0.1:6379> smembers inter
- 1) "wangwu"
e) set中在其他set中不存在member
語法:sdiff key[key ...]
- redis 127.0.0.1:6379>
- redis 127.0.0.1:6379> smembers stu
- 1) "zhangsan01"
- 2) "wangwu"
- redis 127.0.0.1:6379> smembers tech
- 1) "wangwu"
- 2) "zhangsan"
- redis 127.0.0.1:6379> sdiff stu tech
- 1) "zhangsan01"
- redis 127.0.0.1:6379> sdiff tech stu
- 1) "zhangsan"
f)把set中在其他set中不存在的member儲存到新的set
語法:sdiffstore key[key...]
- redis 127.0.0.1:6379> sdiffstore diff stu tech
- (integer) 1
- redis 127.0.0.1:6379> smembers diff
- 1) "zhangsan01"
主要參考:
相關推薦
redis練習手冊set主要操作函式小結
redis set 是string型別物件的無序集合,set不管儲存多少物件,對儲存物件的add,remove和test操作的時間複雜度是O(1)。set最多能包含 232 - 1 個member。 1、增加 語法:sadd key member[member...
redis中set的主要操作函式
redis set 是string型別物件的無序集合,set不管儲存多少物件,對儲存物件的add,remove和test操作的時間複雜度是O(1)。set最多能包含 232 - 1 個member。1、增加語法:sadd key member[member...]
Redis系列-儲存篇list主要操作函式小結
在總結list之前,先要弄明白幾個跟list相關的概念: 列表:一個從左到右的佇列,個人理解更類似於一個棧,常規模式下,先進列表的元素,後出。 表頭元素:列表最左端第一個元素。 表尾元素:列表最右端的最後一個元素。不包含任何元素的列表成為空列表。 1)新增 a)lpush
Redis系列-key相關主要操作函式
這篇blog主要總結下,redis中跟key相關的常用函式 1)keys 語法:keys pattern 解釋:查詢所有匹配指定模式pattern的key [[email protected] ~]# redis-cli redis 127.0.0.1:6379
redis練習手冊zset主要操作函式小結
http://blog.csdn.net/love__coder/article/details/8676223 redis支援有序集合,即sorted set。sorted set在set的基礎上,增加了排序屬性,是set的升級版。這裡簡要談談sorted se
redis 中 set 和 hset 有什麼不同,什麼時候使用 hset 什麼時候使用set?
原文地址:https://blog.csdn.net/wab719591157/article/details/73379844/ redis 中存資料時,到底什麼時候用 hset 相比於 set 存資料時又有什麼不一樣? set 就是普通的已key-value 方式
Redis中的批量操作Pipeline
大多數情況下,我們都會通過請求-相應機制去操作redis。只用這種模式的一般的步驟是,先獲得jedis例項,然後通過jedis的get/put方法與redis互動。由於redis是單執行緒的,下一次請求必須等待上一次請求執行完成後才能繼續執行。然而使用Pipeline模式,客
編寫一個函式 reverse_string(char * string)(遞迴實現) 實現:將引數字串中的字元反向排列。 要求:不能使用C函式庫中的字串操作函式。
給定字串,程式碼如下: #include <stdio.h> #include <stdlib.h> #include <assert.h> char* reverse_string(char *str) { assert(str !
編寫一個函式 reverse_string(char * string)(遞迴實現),將引數字串中的字元反向排列。 要求不能使用C函式庫中的字串操作函式
#include<stdio.h> #include<stdlib.h> int str(char *string) { int n = 0; while (*string) { n++; string++; } return n; } void rever
在redis中優化頻繁操作redis產生多次連結引發的網路延時
在程式中可能存在頻繁操作redis,每次操作redis都需要產生網路連結,雖然每次操作的返回處理非常快(幾十甚至幾毫米),但是非常多的redis操作在超高的併發請求中,還是有必要優化的,那麼php中如何避免產生多次操作,每次都連結一次redis呢?其實和上篇文章的方法是一
Spark Streaming中的基本操作函式例項
該文例項我的碼雲直達車 請了解一些基本資訊: DStream是Spark Streaming提供的基本抽象。它表示連續的資料流,可以是從源接收的輸入資料流,也可以是通過轉換輸入流生成的已處理資料流。在內部,DStream由一系列連續的RDD表示,這是Spar
js中陣列常見操作函式
定義: var arr = [ "liu",1,1.3,[1,2,3],null]; 取長度: arr.length 給元素賦值: arr[0] = 'LIU'; 搜尋指定的值的位置: arr.indexOf("liu"); //0 擷取陣列的一部分:
php中的陣列操作函式整理
PHP 中的陣列實際上是一個有序圖。圖是一種把 values 對映到 keys的型別。此型別在很多方面做了優化,因此可以把它當成真正的陣列來使用,或列表(向量),散列表(是圖的一種實現),字典,集合,棧,佇列以及更多可能性。因為可以用另一個 PHP 陣列作為值,也可以很容易地
標準C語言中的檔案操作函式的記憶體版
1. 初衷 專案需要,itron作業系統中實裝freetype+harfbuzz的字型引擎,但itron系統中沒有支援檔案系統! 所以只能將依賴庫中的libdatrie和libthai中的檔案操作換成記憶體版。 2. 程式碼 廢話不說,直接上程式碼。 #include
redis中的key操作
1set key value 設定key,預設生命週期永久有效 127.0.0.1:6379> set userid 1101 OK 127.0.0.1:6379> set username lihua OK1234 2 get key 127.0.0.1:
redis中的流水線操作和事務
流水線(pipeline)redis作為快取使用可以幫助我們提高系統性能,但是redis本身也可以進一步優化,操作redis命令時,通過批量操作命令(例如mget,mset等),但大多數的命令是不支援批量操作的,這時如果一組操作無先後結果上的依賴,可以把這組操作放在流水線裡(
java中常見字串操作函式
java中有很多對字串進行操作的常見方法 總結起來方便記憶 獲取字串長度 length() 字串查詢
redis中set、setex、setnx、getset的用法
SET key value 含義: 將字串值 value 關聯到 key 。 如果 key 已經持有其他值, SET 就覆寫舊值,無視型別。 SETEX key seconds value 含義: 將值 value 關聯到 key ,並將 k
redis數據類型三之set的操作命令
redis數據類i型 set集合類型 1、還是看看redis的官方文檔: 如圖示,redis set 是一種不重復的字符串集合,(它和 list 數據類型的差別就是在不重復上),執行 SADD指令可以添加新的元素到一個 set 集合中。也可以對 set 執行一些其他的操作,如
每天一個JS 小demo之個人信息添加。主要知識點:DOM操作中的表格操作,節點操作
mov src i++ blog this tex set elements img 以下是簡易效果: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">