Redis学习笔记(-)
来源:互联网 发布:软件项目成功案例 编辑:程序博客网 时间:2024/05/22 16:54
在学习了一段时间的Redis之后,发现浅显的学习知识的方式还是不够的。
想好好好的学习点东西还是要踏实下来认真仔细的学下来,即便是暂时不懂得深层的原理,但是遇到相关的问题还是可以解决;
1、Redis的 事务 与 乐观锁
a)事务 (监听开始,结束期间的操作事件)
i.MULTI 开始
ii.EXEC结束 / DISCARD清空操作队列
b)乐观锁 (监听WATCH和结束期间操作事件)
i.WATCH key 开始 (锁定key,不允许其他用户操作)
ii.MULTI 开始
iii.EXEC结束 / DISCARD清空操作队列 (释放key,允许再操作)
2、Redis的 消息 发布 与 订阅
a)发布
i.PUBLISH 发布消息 PUBLISH channel message
b)订阅
i.SUBSCRIBE channel1 [ channel2, channel3 ...... ] (同时订阅多个频道)
当订阅成功时,返回消息 :
[ ‘subscribe’, ‘channel1’, ‘已订阅数量’ ];
当每个频道有消息发布时,该通道接收到消息,消息格式 :
[ ‘message’, ‘channel1’, ‘消息内容’ ];
ii.PSUBSCRIBE news.* 同时订阅模糊匹配名字的频道
c)取消订阅
i.UNSUBSCRIBE channel1 [ channel2, channel3 ...... ] (同时取消 订阅多个频道)
当取消订阅时,返回消息 :
[ ‘unsubscribe’, ‘channel1’, ‘剩余已订阅数量’ ];
ii.PUNSUBSCRIBE news.* 同时取消订阅模糊匹配名字的频道
3、Redis 数据的复制 (一对多的关联)
a)主从复制
i.添加一个从服务器,在从服务器的配置文件中操作:
slaveof ip port (该信息替换成你的主服务器的 ip 和 port端口号)
masterauth <password> (若主服务器设置了密码信息,将该身份验证添加到从服务器的配置中)
b)只读从服务器
i.Redis 2.6 开始, 从服务器支持只读模式, 并且该模式为从服务器的默认模式。
4、Redis 数据的持久化
a)RDB 快照 (在指定的时间间隔内生成数据集的时间点快照)
优点:
. 可以随时将数据集还原到不同的版本
. RDB 非常适用于灾难恢复
. 可以最大化 Redis 的性能
. 在恢复大数据集时的速度比 AOF 的恢复速度要快
缺点:
. 在服务器故障时丢失数据
. 每次保存 RDB ,Redis 都要 fork() 出一个子进程,并由子进程来进行实际的持久化工作,当数据过大时,耗时过长
操作:
执行命令:SAVE 60 1000 (60 秒内有至少有 1000 个键被改动时,执行保存数据)
b)AOF 保存执行命令记录 (记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集)
优点:
. 使用 AOF 持久化会让 Redis 变得非常耐久
. AOF 文件是一个只进行追加操作的日志文件,
. Redis 可以在 AOF 文件体积变得过大时,自动地在后台对 AOF 进行重写,新 AOF 文件创建完毕,Redis 就会从旧 AOF 文件切换到新 AOF 文件,并开始对新 AOF 文件进行追加操作
. AOF 文件有序地保存了对数据库执行的所有写入操作,单独的修改 AOF 文件,重启即可恢复不小心删除的数据
缺点:
. 对于相同的数据集来说,AOF 文件的体积通常要大于 RDB 文件的体积。
. AOF 的速度可能会慢于 RDB
操作:
在配置文件中添加:appendonly yes
c)从 RDB 持久化切换到 AOF 持久化
在 Redis 2.2 或以上版本,可以在不重启的情况下,从 RDB 切换到 AOF
1、为最新的 dump.rdb 文件创建一个备份。
2、将备份放到一个安全的地方。
3、执行以下两条命令:
redis-cli> CONFIG SET appendonly yes
redis-cli> CONFIG SET save ""
4、确保命令执行之后,数据库的键的数量没有改变。
5、确保写命令会被正确地追加到 AOF 文件的末尾。
- Redis学习笔记(-)
- Redis学习笔记(一)--认识Redis
- redis学习笔记(15)---redis数据库
- Redis学习笔记(2)-Redis数据类型
- redis学习笔记3(redis.conf)
- redis学习笔记(1)
- Redis学习笔记(1)
- Redis学习笔记(2)
- Redis学习笔记(3)
- Redis学习笔记(4)
- Redis学习笔记(5)
- redis学习笔记(二)
- redis学习笔记(三)
- Redis学习笔记(一)
- Redis学习笔记(一)
- Redis学习笔记(1)
- Redis学习笔记(2)
- Redis学习笔记(二)
- 第一行代码-7.2 访问其他程序中的数据
- 单链表的建立、测长、打印、删除节点、插入节点、排序、逆置操作。
- chrome 插件工具精选
- android RecyclerView 设置设置选中的一行的内容
- demo
- Redis学习笔记(-)
- 关于java.lang.IllegalMonitorStateException
- linux实战(八)----定时运行----实例运用
- 搭建Git服务器
- 根据C语言改写的java实现的,判定九宫格是否合法。记录
- 【CSS3】text-overflow 与 word-wrap
- Linux笔记(9)——挂载命令和用户登录查看命令
- [android]_[初级]_[android studio中使用单元测试]
- windows下mongodb安装