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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

### 数据库管理


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  # 返回被订阅的模式数量

本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/1964015如需转载请自行联系原作者

daibaiyang119
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
89
分享
相关文章
Redis原理—2.单机数据库的实现
本文概述了Redis数据库的核心结构和操作机制。
Redis原理—2.单机数据库的实现
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
88 30
Redis是如何建立连接和处理命令的
本文主要讲述 Redis 是如何监听客户端发出的set、get等命令的。
843 28
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
4月前
|
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
112 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
【赵渝强老师】Redis的消息发布与订阅
本文介绍了Redis实现消息队列的两种场景:发布者订阅者模式和生产者消费者模式。其中,发布者订阅者模式通过channel频道进行解耦,订阅者监听特定channel的消息,当发布者向该channel发送消息时,所有订阅者都能接收到消息。文章还提供了相关操作命令及示例代码,展示了如何使用Redis实现消息的发布与订阅。
139 0
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
3月前
|
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
149 0
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
51 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等