您的位置:首页 > 数据库 > Redis

Redis常用命令(四)数据库管理、键管理、订阅发布

2017-09-09 22:34 579 查看
### 数据库管理

keys pattern # 查找键,参数通配符查找

keys * # 查看所有键
keys n* # 查看以n开头的所有键
keys *e # 查看以e结尾的所有键
keys h?llo
keys h[ae]llo

exists name # 查看name这个键是否存在,存在为1,不存在为0

type key # 查看键对应的value的类型
type name

del key1 key2 ... # 删除键及对应的值
del addr

rename key newkey # 将键的名字从key改成newkey,如果newkey已存在,则覆盖
rename num1 num3

renamenx key newkey # 将键的名字从key改成newkey,如果newkey已存在,则不做动作
renamenx num3 num2

# 通过调用sort命令对列表、集合以及有序集合进行排序
sort key [by pattern] [limit offset count] [get pattern [get pattern]] [asc|desc] [alpha] [store destination]
rpush numbers 9 5 1 3 2
sort numbers # 默认情况下sort命令会将键包含的值解释为浮点数,然后对浮点数进行排序
sort numbers asc
sort numbers desc

sadd names peter jack tom
sort names alpha # 使用alpha让sort命令基于字典序对文字进行排序

sort numbers limit 0 3 # 不跳过任何值,返回最开头的三个值
sort numbers limit 3 3 # 逃过最开头的三个值,然后返回紧接着的三个值

sort numbers store sorted-numbers # 通过指定store destkey,我们将排序结果存储到destkey中,排序的结果会以列表的形式存储

randomkey # 从当前数据库中随机的返回一个键,被返回的键不会被删除

# scan命令以渐进的方式分多次遍历整个数据库,并返回匹配给定模式的键
# cursor是遍历时使用的游标,开始新的遍历时需要将cursor设置为0,每次调用scan,命令都会返回一个新的游标值,再次调用scan需要输入整个游标值
# match pattern用于指定要匹配的模式
# count number指定这次遍历最多要返回多少个键
scan cursor [match pattern] [count number]
scan 0

sscan key cursor [match pattern] [count number] # 代替可能会阻塞服务器的smembers命令,遍历集合包含的各个元素
sscan names 0

hscan key cursor [match pattern] [count number] # 代替可能会阻塞服务器的hgetall命令,遍历散列包含的各个键值对
hscan daiby::info 0

zscan key cursor [match pattern] [count number] # 代替可能会阻塞服务器的zrange命令,遍历有序集合包含的各个元素
zscan "blog::paging" 0

dbsize # 返回数据库目前包含的键值对数量

flushdb # 删除当前数据库包含的所有键值对

select num # 切换数据库

move key target-db # 将当前数据库中的key移动到目标数据库中,如果目标数据库已经有同名的key,则不做动作
move numbers 1

flushall # 删除redis所有数据库里面的键值对

# 键过期功能
# expire 和 pexpire的作用是让键在N秒钟或者N毫秒之后被删除
# expireat 和 pexpireat的作用则是让键在指定的Unix时间到达之后被删除

expire key seconds # 设置键生存时间,以秒为单位,如果没有指定过期时间则一直存在,直到使用DEL移除
expire name 5

pexpire key milliseconds # 设置键生存时间,以毫秒为单位,一秒钟等于1000毫秒,redis默认100毫秒一次检查键是否过期
pexpire msg 5500

expireat key timestamp # 设置键过期时间,指定秒级Unix时间戳
expireat msg 100000005

pexpireat key milliseconds-timestamp # 设置键过期时间,指定毫秒级Unix时间戳
pexpireat msg 100000000000005

pttl key # 查看剩余生存时间,以毫秒为单位

ttl key # 查看剩余生存时间,以秒为单位
ttl age

persist # 删除生存时间或过期时间
persist msg

setex key seconds value # 设置键值及过期时间,以秒为单位
set age 5 18

psetex key millisecond value # 设置键值及过期时间,以毫秒为单位;相当于执行了set和pexpire两个命令
set age 5000 18

### 发布与订阅

subscribe channel [channel...] # 订阅给定的一个或多个频道
subscribe news::it

psubscribe pattern [pattern...] # 订阅一个或多个模式,pattern参数可以包含glob风格的匹配符(*,[],?)
psubscirbe news::[ie]t

# 退订命令的行为在各个客户端的表现都不同,redis-cli直接退出客户端来退订,Python和ruby则需要显示的执行命令
unsubcribe [channel|[channel...]] # 退订指定的频道,如果没有指定则退订已订阅的所有频道

punsubcribe [pattern|[pattern...]] # 退订指定的模式,如果没有指定则退订已订阅的所有模式

channels # 显示已订阅的频道

publish channel message # 将消息发送至指定的频道,命令返回收到信息的订阅者数量

pubsub channels [pattern] # 列出至少有一个订阅者的频道

pubsub numsub [channel...] # 返回给定频道的订阅者数量

pubsub numpat # 返回被订阅的模式数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 redis