redis高级应用
一,安全性
在redis.conf文件中修改requirepass选项设置密码
重启redis服务
进入到redis-cli客户端就无法进行操作了,解决办法
1,进入客户端之后,必须输入auth 密码验证之后才能访问操作redis
2,登录之前 redis-cli -a 密码
二,主从复制
master主机不做任何操作
在slave从机的配置文件中加入以下配置
slaveof 192.168.1.117 6379 #指定主机的IP地址和端口号
masterauth 主机密码 #这是主机的密码
三,事务处理
mult打开事务上下文,之后输入的所有命令进去命令队列
exec 会按照mult之后输入的命令的顺序执行
mult 打开事务上下文
discard 事务回滚,取消事务
注意:如果命令队列中的某个命令执行错误,其他的执行正确,事务不会回滚
watch乐观锁给数据加锁
四,持久化机制
防止机器宕机导致内存中的数据丢失,因此需要把数据备份到硬盘上。
redis支持两种持久化方式:
1,snapshotting(快照),也就是默认方式
将数据保存到文件,将数据保存到一个默认文件名为dump.rdb的二进制文件
在配置文件中修改
save 900 1 900秒内如果一个key被修改,则发起快照保存
2,Append-only file(缩写aof)的方式
由于快照保存是有时间间隔的,万一在时间间隔内由于电脑宕机最后一次数据没有保存,导致数据丢。.
因此redis将对数据库进行的增,删,改操作保存到文件当中,当redis重启时会通过执行aof文件中的命令,重建整个数据库的内容
在配置文件中修改:
appendonly yes
appendsync always 执行命令之后就同步一次(效率最低,安全性最好)
appendsync everysec 每秒同步一次(效率折中)
appendsync no 取决于OS的速度去保存(可能数据丢失)
五,发布与订阅(pub/sub)
可以应用在web聊天系统上
1,订阅者订阅自己喜欢的消息(channel消息)
subscribe tv1 订阅tv1的消息,并保持监听状态
subscribe tv1 tv2 订阅tv1和tv2的消息,并保持监听状态
2,发布者发布消息
publish tv1 tv2 发布tv1和tv2的消息
六,虚拟内存的使用
使用虚拟内存把那些不经常访问的数据保存到磁盘上