Redis常用命令
- http://redisdoc.com/ redis命令参考网址
Redis 键(key)
- 查看当前库所有关键字
keys *
- 判断某个key是否存在
exists key的名字,
- 移动一个值到指定数据库
move key的名字 库索引
- 设置key过期时长
expire key的名称 秒数
- 查看key还有多长时间过期(-1表示永不过期,-2表示已过期)
ttl key的名字
- 查看key的数据类型
type key
Redis字符(String)
- 基本操作: set/get/del/append/strlen
- 设置字符型值
set key的名称 value值
- 根据一个key的名称获取对应的值
get key的名字
- 删除key
del key名称 key的名称......
- 获取字符串长度
strlen key的名字
- 自增&自减:Incr/decr/incrby/decrby(字符内容必须为数字才可以操作)
- 使指定值自增1
incr key的名字
- 使指定值自减1
decr key的名字
- 自增指定数量
incrby key的名字
- 自减指定数量
decrby key的名字
- 字符串截取: getrange/setrange
getrange:获取指定区间范围内的值,类似between…and的关系
从零到负一表示全部
setrange设置指定区间范围内的值,格式是setrange key值 具体值
- 获取指定子字符串
getrange langString 开始位置索引 结束位置索引
- 替换字符串
setrange langString 偏移位置 替换值
- setex(set with expire)键秒值/setnx(set if not exist)
- SETEX :将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。如果 key 已经存在, SETEX 命令将覆写旧值。
SETEX key的名称 秒数 值
- SETNX key value:将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在则 SETNX 不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
setnx key的名字 值
- mset/mget/msetnx
- MSET key value [key value …]
- 同时设置一个或多个 key-value 对。
如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
MSET 是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。
- MGET key [key …]
- 返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
- MSETNX key value [key value …]
-
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
即使只有一个给定 key 已存在, MSETNX 也会拒绝执行所有给定 key 的设置操作。
MSETNX 是原子性的,因此它可以用作设置多个不同 key 表示不同字段(field)的唯一性逻辑对象(unique logic object),所有字段要么全被设置,要么全不被设置。 -
getset(先get再set)
-
GETSET key value:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。当 key 存在但不是字符串类型时,返回一个错误。
Redis列表(list)
命令 | 语法 | 说明 |
---|---|---|
lpush | LPUSH key value [value …] | 将一个或多个值 value 插入到列表 key 的表头 |
rpush | RPUSH key value [value …] | 将一个或多个值 value 插入到列表 key 的表尾(最右边)。 |
lrange | LRANGE key start stop | 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定 |
lpop | LPOP key | 移除并返回列表 key 的头元素 |
rpop | RPOP key | 移除并返回列表 key 的尾元素。 |
lindex | LINDEX key index | 返回列表 key 中,下标为 index 的元素。 |
llen | LLEN key | 返回列表 key 的长度。 |
lrem | LREM key count value | 根据参数 count 的值,移除列表中与参数 value 相等的元素。 |
ltrim | LTRIM key start stop | 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 |
rpoplpush | RPOPLPUSH source destination | 命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作: 1.将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。2. 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。 |
lset | LSET key index value | 将列表 key 下标为 index 的元素的值设置为 value 。 |
linsert | LINSERT key BEFORE|AFTER pivot value | 将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。 |
- 列表总结
- 它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
Redis集合
命令 | 语法 | 说明 |
---|---|---|
sadd | SADD key member [member …] | 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略. |
smembers | SMEMBERS key | 返回集合 key 中的所有成员。不存在的 key 被视为空集合。 |
sismember | SISMEMBER key member | 判断 member 元素是否集合 key 的成员。 |
scard | SCARD key | 返回集合 key 的基数(集合中元素的数量)。 |
srem | SREM key member [member …] | 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。 |
srandmember | SRANDMEMBER key [count] | 如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。 |
spop | SPOP key | 移除并返回集合中的一个随机元素。 |
smove | SMOVE source destination member | 将 member 元素从 source 集合移动到 destination 集合。 |
sdiff | SDIFF key [key …] | 返回一个集合的全部成员,该集合是所有给定集合之间的差集。 |
sinter | SINTER key [key …] | 返回一个集合的全部成员,该集合是所有给定集合的交集。 |
sunion | SUNION key [key …] | 返回一个集合的全部成员,该集合是所有给定集合的并集。 |
Redis哈希(hash)
- KV模式不变,但V是一个键值对
命令 | 语法 | 说明 |
---|---|---|
hset | HSET key field value | 将哈希表 key 中的域 field 的值设为 value 。 |
hget | HGET key field | 返回哈希表 key 中给定域 field 的值。 |
hmset | HMSET key field value [field value …] | 同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
hmget | HMGET key field [field …] | 返回哈希表 key 中,一个或多个给定域的值。 |
hgetall | HGETALL key | 返回哈希表 key 中,所有的域和值。 |
hdel | HDEL key field [field …] | 删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。 |
hlen | HLEN key | 返回哈希表 key 中域的数量。 |
hexists | HEXISTS key field | 查看哈希表 key 中,给定域 field 是否存在。 |
hkeys | HKEYS key | 返回哈希表 key 中的所有域。 |
hvals | HVALS key | 返回哈希表 key 中所有域的值。 |
hincrby | HINCRBY key field increment | 为哈希表 key 中的域 field 的值加上增量 increment 。 |
hincrbyfloat | HINCRBYFLOAT key field increment | 为哈希表 key 中的域 field 加上浮点数增量 increment 。 |
hsetnx | HSETNX key field value | 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。 |
SortedSet(有序集合)
- 有序集合是普通集合的加强版,增加了排序属性
- 常用命令
命令 | 语法 | 说明 |
---|---|---|
zadd | ZADD key score member [[score member] [score member] …] | 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。 |
zrange | ZRANGE key start stop [WITHSCORES] | 返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序。 |
zrangebyscore | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] | 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。 |
zrem | ZREM key member [member …] | 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。 |
zcard | ZCARD key | 返回有序集 key 的基数。 |
zcount | ZCOUNT key min max | 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量。 |
zrevrank | ZREVRANK key member | 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序。 |
zrevrange | ZREVRANGE key start stop [WITHSCORES] | 返回有序集 key 中,指定区间内的成员。 |
zrevrangebyscore | ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] | 返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列。 |