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 文件的末尾。

0 0
原创粉丝点击