缓存技术
实现数据使用频率高的热数据更快访问——将热数据缓存至内存里
缓存至内存的数据是从持久化数据写入的——解决断电即丢失的问题
应用程序查询逻辑:
下载
windwos
redis-windows/downloads at master · ServiceStack/redis-windows (github.com)
启动(默认端口6379)
windows
编写启动脚本(解压缩目录下start.bat)
1
| redis-server redis.windows.conf
|
以管理员身份运行(cmd里)
存储原理
16个逻辑库(0~15)
持久化方式
断电前将内存中的数据保存到硬盘中(并不是每次变更都会同步,需要满足触发条件)
RDB
一分钟内数据写入超过10000次就会触发数据同步
AOF
日志记录数据写入(断电后重新执行日志即可恢复)
redis-cli使用
切换逻辑库
清空逻辑库(需要先选定要清空的逻辑库)
清理所有数据
存入数据
获取数据
1
2
| get <key> # "<value>"
# 获取不到数据:(nil)
|
删除数据
1
| del <key> # (integer) 1
|
配置参数(配置后记得重启服务)
单机redis(redis.windows.conf)
redis配置
1
| bind # 允许的ip,默认只允许本机(bind 0.0.0.0表示允许所有访问)
|
1
| timeout # client空闲多少秒后关机,默认0无限制
|
1
| loglevel # 日志级别, debug\verbose\notice\warning, 默认为notice
|
1
| logfile # 日志文件地址,需要关闭syslog-enabled
|
1
| syslog-enabled # 把日志输出到控制台,默认yes
|
持久化存储配置
RDB配置
1
| save n m # RDB文件同步的频率,在n秒内写入达m条数据即同步
|
1
| rdbcompression # 同步RDB文件的时候是否采用压缩,默认yes
|
1
| rdbchecksum # 同步时校验,默认yes
|
1
| dbfilename # 镜像文件名称,默认dump.rdb
|
1
| dir # rdb文件的目录,默认redis目录
|
常用参数
1
| requirepass # 访问密码,默认无需密码
|
1
| maxclients # 最大连接数,默认无限制
|
1
| maxmemory # 占用内存大小,默认无限制
|
AOF配置(开启AOF需要关闭RDB——把save参数注释掉)
1
| appendfilename # AOF文件名
|
1
| appendfsync # AOF同步频率,分为no、everysec、always
|
- no:只把数据写入硬盘缓冲区,什么时候同步由操作系统决定(容易丢失)
- everysec:每秒把数据写入到硬盘(间隔为一秒,不只是写入缓冲区)(有可能丢失)
- always:每次写入都必须同步到硬盘(不会丢失数据)