## 字符串类型
设置值语法:
redis> set key value [ex seconds] [px milliseconds] [nx| xx]
命令选项说明:
EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value 。
PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value 。
NX : 只在键不存在时, 才对键进行设置操作,用户添加。 执行 SET key value NX 的效果等同于执行 SETNX key value 。
XX : 只在键已经存在时, 才对键进行设置操作,用于更新。
另外,还有setex和setnx两个命令,作用和ex和nx是一样的。
redis> setex key seconds value
redis> setnx key value
# 获取值
redis> get key
如果要获取的键不存在,则返回(nil)
# 批量设置值
redis> mset key value [key value ...]
# 批量获取值
redis> mget key [key ...]
# incr自增计数
语法:
redis> INCR key
为键 key 储存的数字值加上一。
如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。
如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。
数字值在 Redis 中以字符串的形式保存。
范例:
redis> SET page_view 20
OK
redis> INCR page_view
(integer) 21
redis> GET page_view
"21"
# 追加值
redis> APPEND key value
如果键 key 已经存在并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾。
如果 key 不存在, APPEND 就简单地将键 key 的值设为 value , 就像执行 SET key value 一样。
对不存在的 key 执行 APPEND :
redis> EXISTS myphone
(integer) 0
redis> APPEND myphone "nokia"
(integer) 5
对已存在的字符串进行 APPEND :
redis> APPEND myphone " - 1110"
(integer) 12
redis> GET myphone
"nokia - 1110"
# 字符串值的长度
redis> STRLEN key
## 哈希类型
# 设置值
redis> hset key field value
# 获取值
redis> hget key field
# 删除 field
redis> hdel key field [field ...]
# 计算field个数
redis> hlen key
# 批量设置或获取field-value
redis> hmset key field value [field value ...]
redis> hmget key field [field ...]
# 判断field是否存在
redis> hexists key field
# 获取所有field
redis> hkyes key
# 获取所有value
redis> hvals key
# 获取所有field-value
redis> hgetall key
# 计算value的字符串长度
redis> hstrlen key field
## 列表类型
# 从右边插入元素
redis> rpush key value [value ...]
# 从坐边插入元素
redis> lpush key value [value ...]
# 向某个元素前或者后插入元素
redis> linsert key before|after pivot value
# 获取指定范围内的元素列表
redis> lrange key start end
# 获取列表指定索引下标的元素
redis> lindex key index
# 获取列表长度
redis> llen key
# 从列表左侧弹出删除元素
redis> lpop key
# 从列表右侧弹出删除元素
redis> rpop key
# 删除指定元素
redis> lrem key count value
# 按照索引范围修剪列表
redis> ltrim key start end
# 修改
redis> lset key index new_value
## 集合类型
# 添加元素
redis> sadd key element [element ...]
# 删除元素
redis> srem key element [element ...]
# 计算元素个数
redis> scard key
# 判断元素是否在集合中
redis> sismember key element
# 随机从集合返回指定个数元素
redis> srandmember key [count]
# 随机从集合弹出元素
redis> spop key
# 获取所有元素
redis> smembers key
# 求多个集合的交集
redis> sinter key [key ...]
# 求多个集合的并集
redis> sunion key [key ...]
# 求多个集合的差集
redis> sdiff key [key ...]
## 有序集合类型
# 添加成员
redis> zadd key score member [score member ...]
# 计算元素个数
redis> zcard key
# 计算某个成员的分数
redis> zscore key member
# 计算成员的排名
redis> zrank key member
# 删除成员
redis> zrem key member [member ...]
# 增加成员的分数
redis> zincrby key member
# 返回指定排名范围的成员
从低到高
redis> zrange key start end [withscores]
从高到低
redis> zrevrange key start end [withscores]
# 返回指定分数范围的成员
从低到高
redis> zrangebyscore key min max [limit offset count]
从高到低
redis> zrevrangebyscore key max min [limit offset count]
# 删除指定排名内的升序元素
redis> zremrangebyrank key start end
# 删除指定分数范围的成员
redis> zremrangebyscore key min max