Redis最大可以同时支持16个数据库,数据库使用编号标识0-16。
启动Redis
redis-server 或 redis-server -p 6380
连接Redis
redis-cli 或 redis-cli -h ip -p port
停止服务
redis-cli SHUTDOWN
测试连接
redis-cli ping
测试连接状态
echo hi
打开当前的数据库
select n (n>=0 && n<=15)
查看数据库Key数量
dbsize
查看所有Key列表
keys *
匹配任意数量字符;
?匹配一个字符
[]匹配方括号内任意字符;
\转义符
删除当前数据库所有Key
flushdb
删除所有数据库的Key
flushall
删除一个Key,或多个Key
del key1 [key2 key3]
移动Key到其他数据库
move key dbIndex
测试Key是否存在
exists Key
为Key设置过期时间,单位秒
expires Key n
查看Key过期时间,单位秒
ttl Key
查看Key的类型
type Key
查看Redis启动目录
config get dir
键值递增一
incr key
键值递增count
incr key count
键值递减一
decr key
键值递减count
decr key count
键值递增一个Float
incrbyfloat key count
键值后面追加字符串
append key value
获取键值的长度
strlen key
一次获取多个键值
mget key1 [key2 key3]
一次设置多个键值
mset key1 value1 key2 value2
为Hash键值赋值
hset hkey k1 v1
一次为Hash赋多个值
hmset hkey k1 v1 k2 v2 k3 v3
取Hash键值
hget hkey k1
一次获取多个Hash键值
hmget hkey k1 k2 k3
获取Hash所有键值
hgetalll hkey
检查Hash键值是否存在
hexists hkey k1
当Hash键不存在时赋值,存在时不赋值
hsetnx hkey k1 v2
为Hash键值递增count
hincrby hkey k1 count
删除Hash键值k1
hdel hkey k1
获取Hash所有Keys
hkeys hkey
获取Hash所有Value
hvals hkey
获取Hash键的个数
hlen hkey
向列表左边添加一个或多个数据
lpush hlist v1 [v2 v3]
向列表右边添加一个或多个数据
rpush hlist v1 [v2 v3]
从列表左边/右边弹出数据
lpop/rpop hlist
返回列表中元素个数
llen hlist
获取列表中某一范围的元素集合
lrange hlist start end
从列表左侧或右侧删除等于value的元素
lrem hlist count value
count大于0 从列表左边删除count个等于value的元素
count小于0 从列表右边删除count个等于value的元素
count=0 删除列表中的全部元素
获取列表中的第index个元素
lindex hlist index
对列表中第index个元素重新赋值
lset hlist index value
获取列表中某一范围的元素集合
ltrim hlist start end
在列表中元素value1的前面或后面添加元素values
linsert hlist before/after value1 value2
从key1右边移除一个元素到key2的左边,相当于执行了rpop key1,lpush key2,整个操作是原子操作。
rpoplpush key1 key2
向Set中添加一个或多个元素,如果元素已经存在添加失败,添加多个元素时只能添加成功不存在的元素
sadd s v1 [v2 v3]
从Set中删除一个或多个元素,只能删除存在的元素
srem s v1 [v2 v3]
获取Set中的元素
smembers s
判断Set中元素是否存在
sismember s v1
求两个Set的差集 s1-s2
sdiff s1 s2
求两个Set的交集 s1 & s2
sinner s1 s2
求两个Set的并集 s1 || s2
sunion s1 s2
获取集合中元素的个数
scard key
求两个Set的差集 s1-s2保存到s
sdiffstore s s1 s2
求两个Set的交集 s1 & s2保存到s
sinnerstore s s1 s2
求两个Set的并集 s1 || s2保存到s
sunionstore s s1 s2
随机获取key中的元素,如果没有
count,则获取一个,如果count0,则返回count个不重复的,如果
count大于集合中的元素个数,就返回全部元素;如果count小于0,则随
机返回|count|个集合中的元素,这些元素可能重复
srandmember key [count]
随机弹出key中的一个元素
spop key
有序集合与集合的关系,有序集合中每一元素上添加一个分值字段,集合元素根据分值排序,列表使用链表结构存储,访问中间部分的元素效率比较慢;有序集合采用散列表存储,访问两端和中间部分元素效率都很高;列表不可以高效调整元素的位置,有序集合可以通过分值调整元素的位置;有序集合比较耗用内存。
向有序集合添加一个或多个元素和分值,如果元素存在,替换分值
zadd zset score1 v1 [score2 v2 score3 v3]
获取有序集合中元素v1的分值
zscore zset v1
按照分数从小到大的顺序返回start到end之间的元素,start,end为负表示从后向前找
zrange zset start end [withscores]
功能同上,只是分值顺序从大到小
zrevrange zset start end [withscores]
按元素分数从小到大返回min和max之间的元素(包含min和max)
zrangebyscore zset min max [withscores] [limit offset count]
(不包含min和max)
zrangebyscore zset (min max) [withscores] [limit offset count]
给元素mb的分数增加increment
zincrby zset increment mb
查看key中元素个数
zcard zset
查看指定范围内的元素个数
zcount zset min max
删除元素
zrem zset mb1 [mb2…]
按照排序后的元素移除排序后的指定范围内的元素。
zremrangebyrank zset start end
移除指定范围内的元素。
zremrangebyscore zset min max
获取元素从小到大的排名
zrank zset mb
从小到大的排序
zrevrank key mb