Redis 数据库支持多种数据类型,主要有:StringListSetSorted SetHash 等,每种数据类型都有其各自的特点。

一、set 类型

set 数据是一种无序的集合,在 redis 内部, set 数据类型通过 HashTable(哈希表)实现,set 数据类型的优点是可以快速查找元素是否存在,通常用于记录一些不重复的数据,例如:用 set 记录网站已经注册时用户名,当用户注册新的用户名时候,可以快速查找在 set 中是否已经存在同名的账户,从而决定是否允许用户注册该账户名。

二、相关命令行命令

sadd key member:向 key 对应的 set 中添加一个值为 member 元素;

srem key member:从 key 对应的 set 中移除值为 member 的元素;

spop key:从 key 对应的 set 中随机删除一个元素并返回删除的元素值;

srandmember key:同 spop,但只是返回随机的元素值而不删除;

smove srckey dstkey member:将 srckey 对应的 set 中的元素 member 移动到 dstkey 对应的 set 中;

scard key:返回 key 对应的 set 的元素个数;

sismember key member:判断 member 元素是否 存在于 key 对应的 set 中;

sinter key1 key2 ... keyN:返回所有给定的 key 对应的 set 集合的交集;

sinterstore dstkey key1 ... keyN:同 sinter,返回交集的同时将交集存放到 dstkey 对应的 set 中;

sunion key1 key2 ... keyN:返回所有给定 key 对应 set 的并集;

sunionstore dstkey key1 ... keyN:同 sunion,返回并集的同时将并集存放到 dstkey 对应的 set 中;

sdiff key1 ... keyN:返回所有给定 key 的 set 对应的差集;

sdiffstore dstkey key1 ... keyN:同 sdiff,返回差集的同时将差集存放到 dstkey 对应的 set 中;

smembers key::返回 key 对应的 set 中的所有元素的无序列表;