Redis常用命令
1.基本命令
-
查询当前库的所有键:
keys *
-
查看某个键是否存在:
exists <key>
-
查看键的类型:
type key
-
删除某个键:
del key
-
为键值设置过期时间:
expire <key> <seconds>
-
查看还有多少秒过期(-1永不过期,-2已过期):
ttl <key>
-
查看当前数据库key的数量:
dbsize
-
清空当前库:
flushdb
-
清空所有库:
flushall
2.String命令
-
查询键对应的键值:
get <key>
-
添加键值对:
set <key> <value>
-
获取值的长度:
strlen <key>
-
只有键不存在时添加键值对:
setnx <key> <value>
-
将key对应的值 +/- 1(只能对数字使用)如果为空则新增值为1(-1):
incr / decr <key>
-
将key中存储的数字递增/减 (只能对数字使用),自定义步长:
incrby / decrby <key> <步长>
-
同时设置一个或多个键值对:
mset <key1> <value1> <key2> <value2> ...
-
同时获取一个或多个value:
mget <key1> <key2> <key3> ...
-
同时设置一个或多个键值对,当且仅当所有给定的key都不存在:
msetnx <key1> <value1> <key2> <value2> ...
-
获取值的范围,类似于java的substring,但是包前也包后:
getrange <key> <起始位置> <结束位置>
-
用value覆写key所储存的字符串值,从起始位置开始:
setrange <key> <起始位置> <value>
-
设置键值的同时设置过期时间:
setex <key> <过期时间> <value>
-
设置新值的同时获取旧值:
getset <key> <value>
3.List命令
- 从左边/右边插入一个或多个值:
lpush/rpush <key> <value1> <value2> ...
- 从左边/右边弹出一个值,如果时最后一个值,键销毁:
lpop/rpop <key>
- 从key1列表右边弹出一个值插到key2列表左边:
rpoplpush <key1> <key2>
- 按照索引下标获得多个元素(从左到右),尾部是-1:
lrange <key> <start> <end>
- 按照索引下标获得元素(从左到右):
lindex <key> <index>
- 获得列表的长度:
llen <key>
- 在value的前/后面插入newvalue的值(只对从左到右的第一次出现的value有效):
linsert <key> before/after <value> <newvalue>
- n>0时,从左边开始删除n个value;n<0时,从右边开始删除n个value;n=0时,删除所有value:
lrem <key> <n> <value>
4.set命令
- 向set中添加元素,已存在的会忽略:
sadd <key> <value1> <value2> <value3> ...
- 获得set里的所有值:
smembers <key>
- 判断set里是否存在某个值,存在返回1,不存在返回0:
sismember <key> <value>
- 返回集合的元素个数:
scard <key>
- 删除集合中的某些元素:
srem <key> <value1> <value2> ...
- 随机从集合中弹出多个值,弹出后值在集合中会消失:
spop <key> <count>
- 随机从集合中取出多个值,取出后值在集合中不会消失:
srandmember <key> <count>
- 返回两个集合中的交集元素:
sinter <key1> <key2>
- 返回两个集合中的并集元素:
sunion <key1> <key2>
- 返回两个集合中的差集元素:
sdiff <key1> <key2>
5.hash命令
- 向集合中的field赋值value:
hset <key> <field> <value>
- 从集合中取出指定field的value:
hget <key> <field>
- 批量向集合中的field赋值value:
hmset <key> <field1> <value1> <field2> <value2> ...
- 查看集合中是否存在指定field的值:
hexists <key> <field>
- 获取集合中的所有field:
hkeys <key>
- 获取集合中的所有value:
hvals <key>
- 获取集合中的所有filed和value:
hgetall <key>
- 为集合中的指定field的value设置增量(可以为负):
hincrby <key> <filed> <count>
- 将集合中的filed的值设置为value,当且仅当field不存在时生效:
hsetnx <key> <field> <value>
6.zset命令
- 将一个或多个value添加到集合中(相同元素不同分数,会把分数更新,相同分数不同元素,能够正常排序):
zadd <key> <score1> <value1> <score2> <value2> <score3> <value3>...
- 返回集合中下标在start和end之间value,如果带WITHSOCORES,可以带分数一起返回,顺序为从小到大:
zrange <key> <start> <end> [WITHSCORES]
- 返回集合中下标在start和end之间value,如果带WITHSOCORES,可以带分数一起返回,顺序为从大到小:
zrevrange <key> <start> <end> [WITHSCORES]
- 返回集合中所有score值接域min和max之间(前包后包)的成员。有序集成员按照score值从小到大次序排列:
zrangebyscore key min max [withscores]
- 返回集合中所有score值接域min和max之间(前包后包)的成员。有序集成员按照score值从大到小次序排列:
zrevrangebyscore key min max [withscores]
- 为集合中的元素增加分数:
zincrby <key> <increment> <value>
- 删除集合中的指定元素:
zrem <key> <value>
- 统计集合中分数区间内的元素个数:
zcount <key> <min> <max>
- 返回该元素在集合中的排名(可以判断元素是否存在集合中):
zrank <key> <value>