替换redis设置值的最佳方法

Yao*_*Pan 2 set redis

我想将一个键值类型的数据存储到 redis 中,values 是一个集合类型,这意味着没有重复的值。我在 redis 中是这样操作的:

127.0.0.1:6379> sadd a 1 2 3
(integer) 3
127.0.0.1:6379> smembers a
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sadd a 4 5 6
(integer) 3
127.0.0.1:6379> smembers a
1) "3"
2) "2"
3) "4"
4) "5,"
5) "1"
6) "6"
Run Code Online (Sandbox Code Playgroud)

我想要用户集(4,5,6)替换集(1,2,3)。

Mar*_*ell 5

你的问题模棱两可。

如果您打算更换所有成员:

# Setup "a" with 3 members
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> sadd a 1 2 3
(integer) 3

# Actions - delete entire set and add 3 new members in one go
127.0.0.1:6379> multi
OK
127.0.0.1:6379> del a
QUEUED
127.0.0.1:6379> sadd a 4 5 6
QUEUED
127.0.0.1:6379> exec
1) (integer) 1
2) (integer) 3
127.0.0.1:6379> smembers a
1) "4"
2) "5"
3) "6"
Run Code Online (Sandbox Code Playgroud)

如果您打算仅替换特定成员:

# Setup "a" with 4 members
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> sadd a 0 1 2 3
(integer) 4

# Actions - delete 3 specific members and add 3 more, leaving others unaffected
127.0.0.1:6379> multi
OK
127.0.0.1:6379> srem a 1 2 3
QUEUED
127.0.0.1:6379> sadd a 4 5 6
QUEUED
127.0.0.1:6379> exec
1) (integer) 3
2) (integer) 3
127.0.0.1:6379> smembers a
1) "0"
2) "4"
3) "5"
4) "6"
127.0.0.1:6379> 
Run Code Online (Sandbox Code Playgroud)