1、String(字符串)
1、设置字符串值
SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX 设置过期时间,秒,等同于SETEX key seconds value
PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
NX 键不存在,才能设置,等同于SETNX key value
XX 键存在时,才能设置
2、设置多个键的字符串值
MSET key value [key value ...]
3、键不存在时,设置字符串值
MSETNX key value [key value ...]
注意:这是原子操作
4、设置多少秒或者毫秒后过期
EXPIRE key seconds
PEXPIRE key milliseconds
5、设置在指定Unix时间戳过期
EXPIREAT key timestamp
PEXPIREAT key milliseconds-timestamp
6、查看剩余生存时间
TTL key
key存在但没有设置TTL,返回-1
key存在,但还在生存期内,返回剩余的秒或者毫秒
key曾经存在,但已经消亡,返回-2
7、查找键
KEYS pattern
pattern取值
* 任意长度字符
? 任意一个字符
[] 字符集合,表示可以是集合中的任意一个
8、键类型
TYPE key
9、键是否存在
EXISTS key
10、键重命名
RENAME key newkey
RENAMENX key newkey
11、键删除
DEL key [key ...]
12、获取值
GET key
获取多个给定的键的值
MGET key [key ...]
13、返回旧值并设置新值
GETSET key value
如果键不存在,就创建并赋值
14、字符串长度
STRLEN key
15、追加字符串
APPEND key value
如果键存在就追加;如果不存在就等同于SET key value
16、获取子字符串
GETRANGE key start end
索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符
17、覆盖字符串
SETRANGE key offset value
18、步长1的增减
INCR key
DECR key
字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
19、步长增减
INCRBY key decrement
DECR key decrement
字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
2、List(列表)
命令说明
B block 块,阻塞
L left 左
R right 右
X exist 存在
1、左右或者头尾压入元素
LPUSH key value [value ...]
LPUSHX key value
RPUSH key value [value ...]
RPUSHX key value
2、左右或者头尾弹出元素
LPOP key
RPOP key
3、从一个列表尾部弹出元素压入到另一个列表的头部
RPOPLPUSH source destination
4、返回列表中指定范围元素
LRANGE key start stop
LRANGE key 0 -1 表示返回所有元素
5、获取指定位置的元素
LINDEX key index
6、设置指定位置元素的值
LSET key index value
7、列表长度,元素个数
LLEN key
8、从列表头部开始删除值等于value的元素count次
LREM key count value
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值
count = 0 : 移除表中所有与 value 相等的值
9、去处指定范围外元素
LTRIM key start stop
10、在列表中某个存在的值(pivot)前或后插入元素
LINSERT key BEFORE|AFTER pivot value
key和pivot不存在,不进行任何操作
11、左右或者头尾阻塞弹出元素
BLPOP key [key ...] timeout
BRPOP key [key ...] timeout
12、从一个列表尾部阻塞弹出元素压入到另一个列表的头部
BRPOPLPUSH source destination timeout
3、Set(集合)
1、增加一个或多个元素
SADD key member [member ...]
如果元素已经存在,则自动忽略
2、移除一个或者多个元素
SREM key member [member ...]
元素不存在,自动忽略
3、返回集合包含的所有元素
SMEMBERS key
如果集合元素过多,例如百万个,需要遍历,可能会造成服务器阻塞,生产环境应避免使用
4、检查给定元素是否存在于集合中
SISMEMBER key member
5、随机返回集合中指定个数的
SRANDMEMBER key [count]
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值
如果 count 为 0,返回空
如果 count 不指定,随机返回一个元素
6、返回集合中元素的个数
SCARD key
键的结果会保存信息,集合长度就记录在里面,所以不需要遍历
7、随机从集合中移除并返回这个被移除的元素
SPOP key
8、把元素从源集合移动到目标集合
SMOVE source destination member
9、差集
SDIFF key [key ...],从第一个key的集合中去除其他集合和自己的交集部分
SDIFFSTORE destination key [key ...],将差集结果存储在目标key中
10、交集
SINTER key [key ...],取所有集合交集部分
SINTERSTORE destination key [key ...],将交集结果存储在目标key中
11、并集
SUNION key [key ...],取所有集合并集
SUNIONSTORE destination key [key ...],将并集结果存储在目标key中
4、Hash(散列)
1、设置单个字段
HSET key field value
HSETNX key field value
key的filed不存在的情况下执行,key不存在直接创建
2、设置多个字段
HMSET key field value [field value ...]
3、返回字段个数
HLEN key
4、判断字段是否存在
HEXISTS key field
key或者field不存在,返回0
5、返回字段值
HGET key field
6、返回多个字段值
HMGET key field [field ...]
7、返回所有的键值对
HGETALL key
8、返回所有字段名
HKEYS key
9、返回所有值
HVALS key
5、Zset(有序集合)
类似Set集合
有序的、去重的
元素是字符串类型
每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同
1、增加一个或多个元素
ZADD key score member [score member ...]
如果元素已经存在,则使用新的score
举例
ZADD fruits 3.2 香蕉
ZADD fruits 2.0 西瓜
ZADD fruits 4.0 番石榴 7.0 梨 6.8 芒果
![在这里插入图片描述]()
2、移除一个或者多个元素
ZREM key member [member ...]
元素不存在,自动忽略
举例
ZREM fruits 番石榴 梨 芒果
ZREM fruits 西瓜
![在这里插入图片描述]()
3、显示分值
ZSCORE key member
举例
ZSCORE fruits 芒果
ZSCORE fruits 西瓜
计算机并不能精确表达每一个浮点数,都是一种近似表达
![在这里插入图片描述]()
4、增加或者减少分值
ZINCRBY key increment member
increment为负数就是减少
举例
ZINCRBY fruits 1.5 西瓜
ZINCRBY fruits -0.8 香蕉
![在这里插入图片描述]()
5、返回元素的排名(索引)
ZRANK key member
举例
ZRANK fruits 西瓜
ZRANK fruits 番石榴
ZRANK fruits 芒果
![在这里插入图片描述]()
6、返回元素的逆序排名
ZREVRANK key member
举例
ZREVRANK fruits 西瓜
ZREVRANK fruits 番石榴
ZREVRANK fruits 芒果
![在这里插入图片描述]()
7、返回指定索引区间元素
ZRANGE key start stop [WITHSCORES]
如果score相同,则按照字典序lexicographical order 排列
默认按照score从小到大,如果需要score从大到小排列,使用ZREVRANGE
举例
ZRANGE fruits 0 2
ZRANGE fruits -5 -4
![在这里插入图片描述]()
8、返回集合中元素个数
ZCARD key
9、返回指定范围中元素的个数
ZCOUNT key min max
ZCOUNT fruits 4 7
ZCOUNT fruits (4 7