概念
Redis是一款内存告诉缓存数据库,数据模型为key-value,数据类型支持String,list,hash,set,sorted set,可持久化,保证了数据的安全。(对比Mysql中的数据是存储在硬盘中)。
缓存可以减轻数据库的负载,包括页面缓存和数据缓存。
Redis和Memcache比较
Redis的K/V数据模型,不仅仅支持基本数据类型,还支持list,hash,set等数据结构存储。Redis支持master-slave(主从)模式。Redis支持数据持久化,可以将数据保存到硬盘,重启后可以再次加载。Redis单个value显示1GB,Memcache限制1MB。
重要文件
redis-cli:终端操作脚本redis-server:启动redis服务脚本redis-check-aof:检查备份文件脚本redis-check-dump:检查备份文件脚本redis.conf:配置文件
配置参数和基本操作
daemonize:设置后台运行key可以定义格式:type:id:field,使用多个“:”进行连接。exists key:测试指定key是否存在del key1 key2:删除指定keytype key:返回key的类型keys pattern:匹配指定模式的所有keyrename oldkey newkey:修改key名称dbsize:返回数据库中key的数量expire key seconds:为key设置过期时间ttl keys:返回剩余时间flushdb/flushall:删除数据库中所有key
持久化设置
redis支持持久化,将数据已文件形式保存到硬盘中,保证数据的安全性。
快照持久化:snap shotting
该持久化默认开启,一次性将redis中的全部数据保存到硬盘中,数据非常多时(10-20G),不适合频繁该持久化操作。持久化默认文件名:dump.rdb配置参数:
save 900 1:900秒内有超过1个key被修改,则发起快照保存save 300 10:300秒内有超过10个key被修改,则发起快照保存save 60 10000:60秒内有超过10000个key被修改,则发起快照保存手动发起快照
bgsave:异步保存数据到磁盘lastsave:返回上次成功保存到硬盘的unix时间戳。shutdown:保存数据到服务器,并关闭redis服务器bgrewriteaof:优化AOF日志文件(AOF功能)实例:./redis-cli bgsave #手动发起快照
AOF持久化
把用户执行的每个“写”指令(添加,修改,删除)都备份在文件中,通过具体的指令来还原数据。
配置参数:
appendonly yes #开启AOFappendfilename appendonly.aof #设置保存数据文件appendfsync参数详解:appenddsync always:每次收到写命令,就理解写入磁盘,影响性能,不推荐使用。appenddsync always:每秒写入硬盘中,在性能和持久化做了平衡,推荐使用appenddsync no:依赖系统进行持久化,性能最好,数据可能会丢失。
AOF的日志文件保存在appendonly.aof 文件中(用户自己制定)
AOF日志可以通过bgrewriteaof命令手动进行优化。
使用快照和AOF结合的方式,既可以保证性能,又不会丢失数据,图示如下: