基本指令
# sadd
127.0.0.1:6379> sadd myset hello # 在集合中新增元素
(integer) 1
127.0.0.1:6379> sadd myset iron
(integer) 1
127.0.0.1:6379> sadd myset egg
(integer) 1
# smembers
127.0.0.1:6379> smembers myset # 檢視指定集合的所有值
1)"egg"
2)"hello"
3)"iron"
# sismember
127.0.0.1:6379> sismember myset iron # 判斷某乙個值是不是在集合中
(integer) 1
127.0.0.1:6379> sismember myset love
(integer) 0
# scard
127.0.0.1:6379> scard myset # 檢視集合中的個數
(integer) 3
127.0.0.1:6379> sadd myset hello # 若集合中已存在,則新增失敗
(integer) 0
# srem
127.0.0.1:6379> scard myset
(integer) 3
127.0.0.1:6379> srem myset egg # 移除集合中的某乙個元素
(integer) 1
127.0.0.1:6379> scard myset
(integer) 2
127.0.0.1:6379> smembers myset
1)"hello"
2)"iron"
# srandmember
127.0.0.1:6379> srandmember myset # 隨機選取集合中的某乙個元素
"iron"
127.0.0.1:6379> srandmember myset
"hello"
127.0.0.1:6379> srandmember myset 2 # 隨機選取集合中一定數量的元素
1)"hello"
2)"iron"
127.0.0.1:6379> srandmember myset 3 # 若選取的數量大於集合全部數量,則全部取
1)"hello"
2)"iron"
# spop
127.0.0.1:6379> smembers myset
1)"hello"
2)"hello2"
3)"hello1"
4)"iron"
127.0.0.1:6379> spop myset # 隨機移除集合中的某乙個元素
"hello"
127.0.0.1:6379> spop myset
"iron"
127.0.0.1:6379> smembers myset
1)"hello2"
2)"hello1"
# smove
127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset iron
(integer) 1
127.0.0.1:6379> sadd myset egg
(integer) 1
127.0.0.1:6379> sadd myset2 set2
(integer) 1
127.0.0.1:6379> smove myset myset2 hello # 將前面集合裡的元素移動到後面的集合中
(integer) 1
127.0.0.1:6379> smembers myset
1)"egg"
2)"iron"
127.0.0.1:6379> smembers myset2
1)"hello"
2)"set2"
# sdiff sinter sunion
127.0.0.1:6379> sadd myset a
(integer) 1
127.0.0.1:6379> sadd myset b
(integer) 1
127.0.0.1:6379> sadd myset c
(integer) 1
127.0.0.1:6379> sadd myset d
(integer) 1
127.0.0.1:6379> sadd myset1 c
(integer) 1
127.0.0.1:6379> sadd myset1 d
(integer) 1
127.0.0.1:6379> sadd myset1 e
(integer) 1
127.0.0.1:6379> sadd myset1 f
(integer) 1
127.0.0.1:6379>
sdiff myset myset1 # 檢視兩個集合的差集
1)"b"
2)"a"
127.0.0.1:6379> sinter myset myset1 # 檢視兩個集合的交集,這裡可以用來實現兩個使用者的共同關注
1)"c"
2)"d"
127.0.0.1:6379> sunion myset myset1 # 檢視兩個集合的並集
1)"e"
2)"f"
3)"d"
4)"a"
5)"b"
6)"c"
使用場景好友/關注/粉絲/興趣小組
a. sinter 可以檢視兩個人的共同關注/好友/興趣
b. scard 可以檢視某人的粉絲/好友數量
c. sismember 檢視使用者 b 是否為使用者 a 的粉絲/好友
d. smove 將粉絲加為好友時,從粉絲集合轉移到好友集合
e. sdiff 檢視使用者 a 可能認識的人
利用 srandmember 來進行內容的隨機展示,或者進行**
黑名單,白名單功能
(五)Redis基本型別 列表型別(List)
1 介紹 列表型別可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段。列表內部是使用雙向鍊錶實現的,獲取越接近兩端的元素速度越快。乙個列表型別鍵最多能容納2的32次方 1個元素。2 命令 1 向列表兩端增加元素 lpush key value value rpush...
Redis 基本型別及功能
一 鍊錶 adlist.h adlist.c 實質是乙個雙端列表 listiter是訪問鍊錶的迭代器,指標 next 指向鍊錶的某個結點,direction標示迭代訪問的方向 巨集al start head表示向前,al start tail表示向後 typedef struct listiter ...
Redis 基本型別與理解
一 字串 set key val k v mset k v k v k v type string 二 雜湊資料 hset key n val key n v hmset key n v n v n v type hash 三 列表 lpush key val k v 追加形式,可新增重複的元素 t...