redis笔记粗浅版

redis事务:
1.redis的事务和java的事务是不一样的,redis的事务是不存在一致性的。就是说里面指令如果碰到一个出现错误,是会继续各执行各的。直到事务完成。
2.redis客户端开启事务命令:multi命令,执行后返回ok。就可以执行事务把事务中的命令存放起来,当事务用exec结尾时,才会执行命令。
3.WATCH 命令
可以为Redis事务提供 check-and-set (CAS)行为。被WATCH的键会被监视,并会发觉这些键是否被改动过了。 如果有至少一个被监视的键在 EXEC 执行之前被修改了, 那么整个事务都会被取消, EXEC 返回nil-reply来表示事务已经失败。
4.UNWATCH命令:取消 WATCH 命令对所有 key 的监视。如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了。

redis备份:
1.redis备份的话有两种方式:aof和rbd
2.aof备份的话在配置文件中是默认不开启的,aof的备份方式是把数据一秒一次备份到aof文件中。如果在备份的时候断电。那么备份中的那一秒的数据则会丢失。
3.rbd备份是将某一段时间的写操作已日志的方式写在rbd文件中,在配置文件中会设置rbd的备份触发条件可以去自己配置。在断电时,有一些数据未触发备份条件的情况下会失去这些数据。
4.不管是aof备份配置还是rbd备份配置,只要redis客户端重启,那么就会按照配制文件中设置的备份设置去自动恢复文件。集群中的从机也会自动同步数据。

redis订阅和发布(消息队列):
1.redis的订阅发布和发布最重要的三点就是:订阅频道消息、频道、发布频道消息
2..redis存在订阅和发布,redis的订阅很简单。在redis客户端中(整合也可),先是订阅频道的消息,在客户端中使用命令:subscribe channel 。其中channel就是频道名称。使用了这个命令后界面就会切换到等待接收这个频道消息的界面。
3.那么接下里就是发布消息,使用客户端命令:publish channel message。其中channel是频道,message是消息。
redis实现订阅原理:
通过SUBSCRIBE命令来订阅一个频道,redis - server和维护一个单词,键字典是一个频道! 而字典的值是一个链表,“保存所有订阅了这个频道的客户端”。 SUBSCRIBE命令的关键字,它是添加到给定通道的订阅列表的客户端。  
那么发送频道消息的时候:通过PUBLISH命令发送订阅消息,redis-server 会将使用给定的通道作为键,在其维护channel字典中 查找所有客户端列表以订阅该通道,遍历该列表,将消息发布给所有订阅者。  
可以用消息队列做及时聊天功能,或者群聊功能

redis集群:
1.使用分布式集群的时候,实现主从机机制。主机挂掉从机依旧可以运行。主机挂掉后,依旧可以从从机这里读取数据。当一个redis客户端变成从机,开机后就会自动从主机上同步数据。
2.如果使用集群主机用来写操作,从机只能用来读操作。
3.如果是使用redis客户端命令来配置主从机,那么客户端重启后,之前的主从机配置不会生效,会变回主机。redis客户端主从机配置命令:slaveof 主机ip 主机端口,例:slaveof 127.0.0.1 6379。命令成功完成后:可用 info repalication 来查看是否配置完成。
4.这样会引发问题,如果主机挂了,不能写数据。那么就需要用哨兵模式来自动选择一个从机来作为主机。

但以上用客户端命令来配置主从机,重启后会失效。从机重后则会变回主机。可以从redis配置文件入手,配置主从机:
比如我要配置两个从机,那么就要在这两个从机的配置文件中找:slaveof masterip masterport
slaveof 主机ip 端口 。例如:slaveof 192.168.0.123 6379

redis哨兵模式:
1.redis哨兵是用来监控集群,如果集群中某一个主服务器挂掉了。那么哨兵就会投票从从机中选择出一个作为主机。从而不会引发太大的问题出现。需要在起一个redis服务。。。。。
2.在master服务器上实现哨兵监控,修改配置文件sentinel.conf文件,文件内容:
sentinel monitor name ip port quorum
其中name表示要监控的master的名字,这个名字是自己定义。 ip和port表示master的ip和端口号。 最后一个1表示最低通过票数,也就是说至少需要几个哨兵节点统一才可以。

port 26379 // 端口号默认就可以

sentinel monitor mymaster 192.168.0.128 6379 1

sentinel down-after-milliseconds mymaster 5000 --表示如果5s内mymaster没响应,就认为SDOWN
sentinel failover-timeout mymaster 15000 --表示如果15秒后,mysater仍没活过来,则启动failover,从剩下的
slave中选一个升级为master
两种方式启动哨兵
redis-sentinel sentinel.conf
redis-server /path/to/sentinel.conf --sentinel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值