1.Key命令

设置key的过期时间。

expire key second:设置key的过期时间

ttl key:查看key的有效期(如果显示正数说明该key正在倒计时,如果是-1说明该key永久保存,是持久化的,如果是-2该key不存在)

persist key:清除key的过期时间。key持久化

使用场景:电商活动有时间限制

2.Redis的持久化方案

redis的所有数据都是保存到内存中。

Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。redis默认支持到持久化方案。

aof形式:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。

在redis.conf配置文件中配置。

Rdb:

Aof的配置:

两种持久化方案同时开启使用aof文件来恢复数据库。但是开启redis持久化。会影响redis数据库性能,所以一般默认不开启持久化

3.Redis的特性

3.1 多数据库

一个redis实例可以包含多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就如同一个mysql中创建了多个数据库,客户端连接时指定连接哪个数据库。

可以根据redis的图形化界面,看到一个redis实例最多提供16个数据库,下表从0到15,客户端默认链接第0号数据库,也可以通过select选择链接那个数据库:

以下是连接库的命令

连接1号库:

连接2号库

将key一直到1号库:

3.2 消息订阅与发布

(1) subscribe channel:订阅频道,例:subscribe mychat,订阅mychat这个频道

(2) psubscribe channel*:批量订阅频道,例:psubscribe s*,订阅以"s"开头的频道

(3) publish channel content:在指定的频道中发布消息,例:publish mychat 'today is a newday'

步骤:

(1) 在第一个连接中,订阅cctv频道。此时如果没有人"发布"消息,当前窗口处于等待状态

(2) 在另个连接窗口中,在cctv频道中发布消息(这种消息订阅与发布的实时性很强)

3.3 redis事务

命令解释:

(1)multi:开启事务用于标记事务的开始,其后执行的命令都将被存入命令队列,直到执行exec时,这些命令才会被原子的执行,类似于关系型数据库中的:begin transaction

(2)exec:提交事务,类似于关系型数据库中commit

(3)discard:事务回滚,类似与关系型数据中的rollback

最新文章

  1. fatal error LNK1169: 找到一个或多个多重定义的符号
  2. 创建ASP.NET Core MVC应用程序(1)-添加Controller和View
  3. __new__方法
  4. Anagrams
  5. 多线程BackroundWorker 使用
  6. JS部分代码分享
  7. 8.8 CSS知识点1
  8. NOIP2008普及组传球游戏(动态规划)——yhx
  9. java 字符串(正则表达式)未完
  10. hdu1166敌兵布阵_线段树单点更新
  11. Ext JS学习第六天 Ext自定义类(一)
  12. Ubuntu16.04下安装redis
  13. android 使用Vysor投影到电脑
  14. 洛谷P4057
  15. 使用python读取MS-SQL数据库
  16. (译)内存沉思:多个名称相关的神秘的SQL Server内存消耗者。
  17. HTTP协议和XMPP协议、MQTT协议
  18. DevExpress WPF v18.2新版亮点(六)
  19. 【Python】unittest-4
  20. 整理一些常用的前端CND加速库,VUE,Jquery,axios

热门文章

  1. linker 错误解决办法 地图
  2. IdentityServer4 学习笔记[1]-客户端授权
  3. day14内置函数作业详解
  4. 使用工具自动生成Linq类文件
  5. BZOJ 4264 小C找朋友 哈希+脑子
  6. C. Glass Carving 正着做或者倒着做都可以
  7. mysql日常使用总结(持续更新中)
  8. WebSocket协议入门介绍
  9. [备忘]java 静态块、非静态块、静态函数、构造函数 执行顺序
  10. mysql查询索引