8月16日任务

21.9 redis介绍
21.10 redis安装
21.11 redis持久化
21.12 redis数据类型

Redis介绍

redis安装

在官网redis.io上下载最新稳定版,并编译安装(该应用相对特殊,无需configure直接进入make&& make install阶段)

如下图,查看redis-有很多不同后缀的文件

把redis.conf拷贝到/etc/下, 并修改关键配置文件

①daemonize yes:允许后台运行

②定义logfile:/var/log/redis.log(redis中有database的概念,默认有16个,从0开始)

③定义rdb文件的路径 dir

主从的一些相关参数

④ append only 参数,如果设置成yes就会在之前定义的dir下生成一个append.aof文件

有更新的时候记录频率

mkdir,redis-server /etc/redis.conf

此处还有两个内核参数告警

①overcommit参数值建议设置成1 ②把 echo never加入到开机启动项/etc/rc.local中

强烈建议在命令行模式设置后,也把这两行内核参数加入到/etc/rc.local中

redis持久化

和mysql不同,mysql的数据在内存只是一个临时的中转站,最终存到磁盘上,而redis则两者都可以(内存和磁盘等其他外部介质)

RDB:相当于把内存的数据镜像一份到磁盘上,时间是由redis.conf配置文件中的save参数决定的

900秒内发生一次,300秒内发生十次,60秒内发生10000次更改就会触发(注释掉这三行,打开上面的save " "表示关闭持久化)

AOF:局限性在于:随着时间的增长,每次更改会不断记录日志文件,需要优化过程(记录redis执行过程中的指令,下次redis重新启动时重新执行一遍,实现数据恢复);所谓优化,比如过一段时间发现很多AOF日志过期,可以删除相关的key

AOF的三种形式:

最后一种是根据系统的频率去同步,第二种最优,第一种过于耗费磁盘IO/A

是否使用RDB/AOF根据实际情况而定(数据从内存→IO到磁盘的过程)

redis数据类型

①string

如下图示例:

②list

具体示例:LPUSH (链表中加入一些元素), LRANGE(查看list所有值,先进后出), LPOP (后进先出)

③set

示例:sadd 加set集合; smembers查看集合所有元素;sunion 并集; sinter 交集; sdiff 差集;srem 删除某元素

④sort set有序集合

示例:ZADD 有序添加集合set, ZRANGE 按照score大小正序排列后面的value,不显示score ; ZREVRANGE 倒序排列

⑤hash(可以认为是结构化的hashmap)

示例:

发现换了最后一示例最后个度来实现持久化,那就④是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了