首页 > 其他 > 详细

二 Redis的特性

时间:2019-08-18 11:24:28      阅读:83      评论:0      收藏:0      [点我收藏+]
 
 
 
 
 
 
 
Redis 的特性
1.多数据库
1)概念:一个 redis 实例可以包含多个数据库,客户端可以指定连接到某个 redis 实例的的某
个库,就好比 mysql 中创建过个数据库,客户端连接时指定连接哪个库
2)一个 redis 实例最多提供 16 个库,下表从 0 到 15,客户端默认连接 0 号库,也可以通过
select 指定连接哪个库
3)通过 move 命令可以将某个 key 移动到其他的库中
技术分享图片
2. 服务器命令
Shutdown 通过客户端关闭服务器
技术分享图片
ping 命令测试连接是否存活
技术分享图片
echo 命令答应一些内容
技术分享图片
quit 退出客户端
技术分享图片
dbsize 返回当前数据库中 key 的数目
技术分享图片
Info 获取服务器的信息和统计
技术分享图片
flushdb 删除当前选择数据库中的所有 key
技术分享图片
Flushall 删除所有数据库中的所有 key
 
3 消息订阅和发布(作为消息队列)
? subscribe channel:订阅频道,例:subscribe mychat ,订阅 mychat 这个频道
? Psubscribe channel*:批量订阅频道,例:psubscribe s*,订阅以 s 开头的频道
? Publish channel content: 在指定的频道中发布消息, 如 publish mychart ‘today is a
new day’
实现步骤如下:
1) 订阅某个频道(消费者,消费某个频道的消息)
技术分享图片
2)发布消息(生产者,向某个频道生产消息)
技术分享图片

 

 
4.redis 事务(批处理)
4.1 概念
和众多其他数据库一样,redis 作为 nosql 数据库也同样提供了事务机制,在 redis 中,
MULTI/EXEC/DISCARD 这三个命令是我们实现事务的基石
4.2 redis 事务特征
1、在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,Redis 不会再为其它
客户端的 请求提供任何服务,从而保证了事物中的所有命令被原子的执行
2、和关系型数据库中的事务相比,在 Redis 事务中如果有某一条命令执行失败,其后的命
令仍然会被继续执行。
3、我们可以通过 MULTI 命令开启一个事务,有关系型数据库开发经验的人可以将其理解为
"BEGIN TRANSACTION"语句。在该语句之后执行的命令都将被视为事务之内的操作,最后我
们可以通过 执行 EXEC/DISCARD 命令来提交/回滚该事务内的所有操作。这两个 Redis 命令可
被视为等同于关系型数据库中的 COMMIT/ROLLBACK 语句。
4、在事务开启之前,如果客户端与服务器之间出现通讯故障并导致网络断开,其后所有待
执行的语句都将不会被服务器执行。然而如果网络中断事件是发生在客户端执行 EXEC 命令之
后,那么该事务中的所有命令都会被服务器执行。
5、当使用 Append-Only 模式时,Redis 会通过调用系统函数 write 将该事务内的所有写
操作在本次调用中全部写入磁盘。然而如果在写入的过程中出现系统崩溃,如电源故障导致的宕
机,那么此时也许只有部分数据被写入到磁盘,而另外一部分数据却己经丢失。Redis 服务器会
在重新启动时执行一系列必要的一致性检测,一旦发现类似问题,就会立即退出并给出相应的错
误提示。 此时,我们就要充分利用 Redis 工具包中提供的 redis-check-aof 工具,该工具可以
帮助我们定位到数据不一致的错误,并将己经写入的部分数据进行回滚。修复之后我们就可以再
次重新启动 Redis 服务器了。
 
4.3 命令解释
multi:开启事务用于标记事务的开始,其后执行的命令都将被存入命令队列,直到执行 EXEC
时,这些命令才会被原子的执行,类似与关系型数据库中的:begin transaction
exec:提交事务,类似与关系型数据库中的:commit
discard:事务回滚,类似与关系型数据库中的:rollback
4.4 事务的使用
 
 技术分享图片

技术分享图片

 

 技术分享图片

 

 

 

二 Redis的特性

原文:https://www.cnblogs.com/JBLi/p/11371437.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!