Redis高级特性---------事务与持久化与发布订阅
一、redis事务的用法
1.开启事务:multi
2.提交事务:exec ( queued只是把指令放入队列中,没有执行)

3.取消事务:discard

4.redis事务不能保证同时成功或者失败进行提交或者回滚,比如下图中 姓名报错而年龄增加了

5.使用watch
watch命令可以为redis事务听check and set行为,也就是cas
被watch的key会被监视,检测它是否被修改,如果有至少一个key被修改了,整个事务都会取消
开启两个服务,在第一个服务器exec之前,另一个服务对watch的键进行修改操作。程序需要做的就是不断重试这个操作,知道没有发生碰撞。
这种形式的锁被称为乐观锁。


二、持久化
redis是一个支持持久化的内存数据库,redis需要经常将内存中的数据同步到硬盘来保证持久化。
1.默认采用RDB方式
- Redis默认的方式,redis通过快照来将数据持久化到磁盘中。
- redis.conf中修改持久化快照的条件:
- redis.conf中可以指定持久化文件存储的目录
- dbfilename dump.rdb
- dir ./

- 不足:如果就在每隔的这个时间内断机,会有部分缓存中的数据丢失。一般选择使用redis,不太在乎缓存中的数据丢失,数据库中还可以同步。如果数据库没有存储,redis还可以做集群保障。
2.AOF
- Aof方式的持久化,是操作一次redis数据库,则将操作的记录存储到aof持久化文件中。
- 开启aof方式:将redis.conf中的appendonly改为yes
- Aof文件存储的目录和rdb方式的一样。
- Aof文件存储的名称: appendfilename "appendonly.aof"
- 如果redis重启,则数据从aof文件加载。
- 时时持久化,数据不丢失。
- 不足:但是性能耗费大。
三、发布订阅
使用subscribe [频道] 进行订阅监听
使用publish [频道] [内容]进行发布消息广播


Redis高级特性---------事务与持久化与发布订阅的更多相关文章
- Redis事务、持久化、发布订阅
一.Redis事物 1. 概念 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他 ...
- Redis05——Redis高级运用(管道连接,发布订阅,布隆过滤器)
Redis高级运用 一.管道连接redis(一次发送多个命令,节省往返时间) 1.安装nc yum install nc -y 2.通过nc连接redis nc localhost 6379 3.通过 ...
- redis 高级特性 不要太好用
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- Redis高级特性及应用场景
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- 【Redis】二、Redis高级特性
(三) Redis高级特性 前面我们介绍了Redis的五种基本的数据类型,灵活运用这五种数据类型是使用Redis的基础,除此之外,Redis还有一些特性,掌握这些特性能对Redis有进一步的了解, ...
- activemq的高级特性:消息存储持久化
activemq的高级特性之消息存储持久化 有基于文件的,数据库的,内存的.默认的是基于文件的,在安装目录/data/kahadb.在conf/activemq.xml文件中. <persist ...
- Linux07 /redis的配置、五大数据类型、发布订阅、持久化、主从复制、哨兵配置、集群搭建
Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 目录 Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 ...
- Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
三.事务处理 Redis的事务处理比较简单.只能保证client发起的事务中的命令可以连续的执行,而且不会插入其他的client命令,当一个client在连接 中发出multi命令时,这个连接就进入一 ...
- Redis高级特性介绍及实例分析
转自:http://www.jianshu.com/p/af7043e6c8f9 Redis基础类型回顾 String Redis中最基本,也是最简单的数据类型.注意,VALUE既可以是简单的St ...
随机推荐
- 初次使用git就遭遇不测,提示没有这个服务连接和需要配置git的一个http参数 NO network connection,SSl host could not be verified ...
第一次使用git 拉取服务上的项目到本地,结果,在拿到访问的url地址后,输入用户名密码,失败了. --eclispe 4.5.3 继承了git客户端插件的版本 ------下一步后,报错 NO n ...
- Android组件系列----Activity组件详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- leetCode题解之反转字符串中的元音字母
1.问题描述 Reverse Vowels of a String Write a function that takes a string as input and reverse only the ...
- Entity Framework的几种初始化器
Database.SetInitializer<TContext>(new NullDatabaseInitializer<TContext>()); Database.Set ...
- UIImageView的animationImages动画
UIImageView的animationImages动画 UIImageView的animationImages,只有在做非常规动画的时候才有优势,比方说下图中左侧动画.如果用来做下图中的右侧动画, ...
- linux 创建新用户并增加管理员权限
1.adduser与useradd有什么区别?2.那种方式会自动创建组.用户组等信息? 3.如何新建用户具有管理员权限? $是普通管员,#是系统管理员,root用户默认是没有密码的,因此也就无法使用( ...
- 作业一 制作PC配置 吴昊
- Spring Boot REST
资源(Resources) 所谓资源,就是网络上一个实体,或者是网络上一个具体信息.他可以是一段文本,一张图片,一种服务,总之是一个具体的实体.可以用一个URI(统一资源定位符)指向它,每种资源对应一 ...
- 021.14 IO流 管道流
用的频率不高特点:读取管道和写入管道对接,需要是用多线程技术,单线程容易死锁 使用connect方法连接两个流,实现边读编写,和node.js的管道流差不多 //##主函数位置 public stat ...
- 走向Node与Webpack 之路 - CommonJS 模块化
走向Node与Webpack 之路 - CommonJS 模块化 1. 参考资料 JavaScript 标准参考教程(alpha) CommonJS规范(推荐 - 阮一峰写的) 官方网站 (看半天,不 ...