开篇
上篇博客中已经了解到redis的高级应用主要有6个方面,本篇博客简单的介绍一下比较简单的集合高级应用包括:安全性、主从复制、虚拟内存。
正文
一、安全性
说明:所谓的安全性就是权限的设置,设置客户端连接后进行任何其他操作前需要使用密码。
配置:只需要修改redis.conf配置文件中的#requirepass foobared就可以完成。如下设置密码为123456
效果:
完成后使用命令redis-cli连接客户端进行操作会给出权限不足提示,如下
解决:
1、使用auth 授权,返回ok授权成功可进行操作,如下
2、连接客户端时使用 redis-cli–a password可直接授权。
二、主从复制
说明:主存复制是当redis搭建集群时为了保证slaveserver和master server的数据一致使用的策略。
过程:
1、 slave与master连接,并且向mast发出同步请求命令
2、 master另起一个进程将数据库快照保存到文件中,master的主进程于此同时会开始收集新的写命令并 缓存。
3、 后代完成快照文件保存后master将此文件发送给slave
4、 Slave将文件保存到自己的硬盘
配置:
在slave server的redis.conf中添加 slaveof的配置,设置master的ip和端口
效果:
Slave会和master中的数据保持一致。
三、虚拟内存
说明:redis的虚拟和操作系统的虚拟内存的思想是相同的,就是将暂时不经常访问的数据从内存交互到磁盘中,释放内存空间用来存放经常被使用的数据。
配置:在redis.conf中添加如下配置,
vm-enabled yes #开启vm功能 vm-swap-file /tmp/redis.swap #交互出来的value保存的文件路径 vm-max-memory 1000000 #redis使用的最大内存上限 vm-page-size 32 #每个页面的大小32字节 vm-pages 134217728 #最多使用多少页面 vm-max-thread 4 #用于执行value对象换入的工作的线程数量 |
效果:
修改完毕后重启redis会有如下提示
解决:在配置文件中添加really-use-vmyes,然后重启redis即可。
四、持久化机制
说明:将内存中的数据持久化到物理硬盘的过程
Redis持久化方式:
1、 snapshotting(快照),默认方式
说明:将内存中的数据以快照的方式写入到二级制文件中,文件的默认名为dump.rdb
配置:使用save配置,可以配置redis在n秒内超过m个key被修改就完成自动做快照
不足:快照方式在一定间隔时间进行一次,如果在下一次快照之前redis发生down机,会有部分数 据丢失。
2、 append-only file(aof)
说明:redis会将每个收到的写命令都通过write函数追加到文件中,redis重启重新执行文件中保存 的写命令恢复数据库。
不足:os(operationsystem)可能会在内核中缓存write函数做的修改。所以可能不会立即写入磁盘 导致数据丢失可以通过配置文件强制os写入磁盘的时机,分为三种方式
配置:
总结
本次学习了redis中4个高级应用还剩下redis的事务和发布订阅消息,下篇博客继续学习。