redis常用命令大全

参考资料

redis服务相关

redis启动

$ redis-cli # 本地启动链接
$ redis-cli -h host -p port -a password #远程启动

验证密码是否正确

$ AUTH password

打印字符串

$ ECHO message

查看服务是否运行

$ PING

关闭当前连接

$ QUIT

切换指定数据库

$ SELECT index

redis key命令

删除给定的一个或多个key,不存在的key会忽略掉

$ DEL key [key ...]  # 返回被删除key的数量

检查给定的key是否存在

$ EXISTS key  # 存在返回1,否则返回0

设置key的过期时间

$ EXPIRE key time   # 设置成功返回1

设置key指定的过期时间

$ EXPIREAT key timestamp   # 设置成功返回1,key不存在或者无法设置,返回0

查找所有符合给定模式pattern的key

$ KEYS *    # 匹配数据库中所有key
$ KEYS h?llo   # 匹配hello, hallo和hxllo等
$ KEYS h*llo   # 匹配hllo,heeeeeello等
$ KEYS h[ae]llo   # 匹配hello,hallo,但是不匹配hxllo

移除给定key的生存时间,使其变成永久的key

$ PERSIST key   # 成功返回1,当key不存在或者key未设置ttl时返回0

返回key的剩余生存时间

$ PTTL key   # 以毫秒返回key的剩余生存时间,当key不存在时返回-2,key没有设置过期时间返回-1
$ TTL key # 以秒返回key的剩余生存时间,同上

从当前数据库随机返回一个key,但是不删除

$ RANDOMKEY   # 当数据库为空时,返回nil

重命名key的名字

$ RENAME key newkey  # 失败会返回错误,如no such key,当newkey存在时,将覆盖key
$ RENAMENX key newkey   # 当newkey存在时,会返回错误

对列表、集合、有序集合key中元素进行排序

$ SORT key   # 返回从小到大的结果
$ SORT key desc   # 返回从大到小的结果

获取key的类型

$ TYPE key
# none(key不存在)
# string(字符串)
# list(列表)
# set(集合)
# zset(有序集合)
# hash(哈希表)

游标方式获取key

$ SCAN 0   # 从游标为0的位置开始获取key,返回值会返回之后游标的位置
$ SCAN 0 MATCH h*llo   # 可以通过match的方式返回匹配的元素

string(字符串)

追加value到key原有值的结尾

$ APPEND key value    # 返回当前key的长度

设置bit位以及获取被设置bit位数量

$ SETBIT key offset value   # 设置当前offset的bit位为1
$ BITCOUNT key [start end]    # 获取当前key设置过1的数量

对key中存储的数据进行加或者减操作

$ DECR key      # 返回当前存在的值,减1
$ DECRBY key decrement      # 返回当前存在的值,减去decrement
$ INCR key      # 对key进行加1操作
$ INCRBY key increment      # 返回当前存在的值,加上increment
$ INCREBYFLOAT key float    # 对当前key加上一个flaot值,但是会有很多小数

对字符串数据进行设置和获取

$ SET key value         # 设置一个key的值
$ GET key           #获取key的值

获取key的值在start和end之间的值

$ GETRANGE key start end

将给定的value设置到key,并且返回key之前的值

$ GETSET key value

设置一个key,含有过期时间,但是是毫秒

$ PSETEX key milliseconds value

设置一个key,含有过期时间,但是是秒

$ SETEX key seconds value

返回value的长度

$ STRLEN key

set if not exists如果不存在则写入,返回1或0

$ SETNX key value

同时获取多个值

$ MGET key[key...] 

同时设置多个key和值

$ MSET key value[key value...]

原子性操作,要么都一起设置成功,要么都一起设置失败

$ MSETNX key value[key value...]

Hash(哈希表)

删除哈希表key中一个或多个指定域,不存在将被忽略,成功返回被删除数量

$ HDEL key field [field...]

检查哈希表key中,给定域field是否存在,存在返回1,不存在返回0

$ HEXISTS key field

获取哈希表key中,给定的域field

$ HGET key field

获取哈希表key所有域和值

$ HGETALL key

对哈希表key中指定的域field值上加上增量increment

$ HINCRBY key field increment

对哈希表key中指定的域field值上加上浮点数increment

$ HINCRBYFLOAT key field incrment

返回给定哈希表key中所有的域field

$ HKEYS key

返回给定哈希key中所有与field的数量

$ HLEN key

返回哈希表key中一个或多个给定域的值

$ HMGET key field [field...]

将多个field-value对设置到哈希key中

$ HMSET key field value [field value ...]

将哈希表key中域field设置值为value

$ HSET key field value

将哈希表key中域field设置值为value,当且仅当field不存在,如果存在则操作无效

$ HSETNX key field value

返回哈希表key中所有域的值

$ HVALS key

列表(list)

弹出多个队列的值,阻塞式

$ BLPOP key [key...] timeout

向前弹出多个队列的值,阻塞式

$ BRPOP key [key...] timeout

返回key中位于index的值,0开始,-1为倒数第一个

$ LINDEX key index

插入一个值到key的某一个值之前或之后,如果这个值没找到,则不插入

$ LINSERT key BEFORE|AFTER pivot value

返回key有多少个值

$ LLEN key

移除表头的值,并返回该值

$ LPOP key

将一个或多个值插入到key的表头

$ LPUSH key value [value...]

从key1表尾弹出一个值,并插入到key2表头,只是阻塞版本

$ BRPOPLPUSH key1 key2 timeout

将一个值插入到key中,当且仅当key存在的情况下

$ LPUSHX key value

获取指定区间的值,-1表示最后一个

$ LRANGE key start end

移除与value相等的值,当count>0,表头开始搜索,count<0,表尾开始搜索,count=0,移除全部

$ LREM key count value

设置指定index的值,覆盖

$ LSET key index value

删除指定区间以外的值

$ LTRIM key start end

从表尾弹出一个值

$ RPOP key

从key1结尾弹出一个值返回,并添加到key2表头

$ RPOPLPUSH key1 key2

从表尾插入一个值

$ RPUSH key value [value...]

从表尾插入一个值,当且仅当key存在的时候

$ RPUSHX key value

集合(Set)

将一个或者多个值添加到集合中,重复的值将会被忽略掉

$ SADD key value [value...]

返回key中队列的元素数量

$ SCARD key

返回队列key所有的值

$ SMEMBERS key

返回所有集合的差集,目前看来是第一个key在其他key中不存在的值

$ SDIFF key [key...]

用以上SDIFF对比差集之后,存储到destination这个集合中去

$ SDIFFSTORE destination key [key...]

返回几个集合的交集,假设有一个是空集,那么返回的也是空集

$ SINTER key [key...]

将以上用SINTER返回的交集存储到destination集合中

$ SINTERSTORE destination key [key...]

判断一个值是否是一个集合的成员

$ SISMEMBER key member

将元素从source移动到destination中去,原子性操作

$ SMOVE source destination member

移除并返回一个随机元素

$ SPOP key

返回一定数量的元素,但是不对集合进行任何删除等操作

$ SRANDMEMBER key [count]

移除集合中一个或者多个member,如果member不存在,将会被忽略

$ SREM key member [member...]

返回所有集合中的并集

$ SUNION key [key...]

返回所有集合的并集,并且存储到destination

$ SUNIONSTORE destination key [key...]

sortedset(有序集合)

添加多个member及他们的score值到集合中

$ ZADD key score member [score member...]

返回zset的member数量

$ ZCARD key

返回一个分数区间的值

$ ZCOUNT key min max

为一个member增加分数,如果不存在member,则等同于ZADD key score member

$ ZINCRBY key increment member

获取一个区间的值,通过索引,从小到大

$ ZRANGE key start stop [WITHSCORES]

获取一个区间的值,通过score,从小到大

$ ZRANGEBYSCORE key min max [WITHSCORES]

获取某个member的排名,这个排名是从小到大

$ ZRANK key member [WITHSCORES]

移除某些member

$ ZREM key member [member...]

移除特定排名的member

$ ZREMRANGEBYRANK key start stop

移除特定分数的member

$ ZREMRANGEBYSCORE key min max [WITHSCORES]

通过索引获取一个区间的值,与zrange不同的是,这个是从大到小

$ ZREVRANGE key start stop [WITHSCORES]

通过分数获取一个区间的值,与zrangebyscore不同的是,这个是从大到小

$ ZREVRANGEBYSCORE key max min [WITHSCORES]

获取某个member的排名,但是这个排名是从大到小

$ ZREVRANK key member [WITHSCORES]

返回一个member的score

$ ZSCORE key member

合并几个key的zset,查见文档,太难看懂,也用的不多

原文地址:https://www.cnblogs.com/djzny/p/11336573.html