电子商务书店网站设计实验中国创业商机网
-  
redis
-  
remote dictionary server(远程字典服务器)
-  
是一个开源的,使用c语言编写的非关系型数据库,支持内存运行并持久化,采用key-value的存储形式。
 -  
单进程模型意味着可以在一台服务器上启动多个redis进程,redis处理速度依赖于主进程的执行效率,意味着多个redis进程会增加处理效率,但是对cup的压力就会比较大,需要根据需要来决定redis的进程数量。多进程适合高并发的处理
 -  
优点:
-  
极高的读写速度
 -  
支持多种数据类型
 -  
数据的持久化
 -  
原子性:要么都执行,要么都不执行
 -  
支持数据备份(主备结构备份)
 
 -  
 -  
安装部署
-  
用阿里提供的版本较低,3.2
 -  
去官网下载,https://www.redis.io
-  
下载相应的较高的版本,本案例以4.0.9为例
 
 -  
 -  
准备前奏
-  
添加防火墙策略,关闭内核安全机制
 -  
安装编译依赖包
-  
gcc* zlib-devel
 
 -  
 
 -  
 -  
解压安装
-  
redis是直接配置好的程序,需要配置,值得一提的是需要在安装这一步指定路径前缀来确定安装位置。
 
 -  
 -  
初始化
 -  
-   
在解压目录下的utils目录下会有一个初始化工具,源码包安装的数据库一般要经过初始化才能进行使用,
-  

 -  
标识1:指定redis进程端口,可以设置不同的端口来开启多个redis进程。
 -  
标识2:指定配置文件的位置及名称。一般与端口对应。
 -  
标识3:日志文件名称,也与端口保持一致
 -  
标识4:对于redis来说持久化需要有对应的文件来保存数据,该项就是指定该文件的位置。
 -  
标识5:指定redis的命令路径。
 -  
建议在初始化时先优化命令路径,避免最后一项出现空需要手动指定。
 
 -  
 -  
初始化完毕后进程就开始运行了,可以查看进程来确定。
-  
netstat -anpt | grep redis
 
 -  
 
 -   
 -  
配置参数的优化
-  
查找bind修改监听地址
-  
需要注意的是只能有一个bind,监听地址需要写在后面。
-  
例:bind 127.0.0.1 192.168.10.101
 
 -  
 
 -  
 -  
查找port可以修改端口
-  
port 6379
 
 -  
 -  
查找daemon来决定是否以守护进程方式运行
-  
daemonize yes
 
 -  
 -  
查找loglevel可以修改记录日志的级别
-  
默认是notice
 
 -  
 -  
查找pidfile可以看pid文件存放位置。
 
 -  
 -  
服务控制脚本
-  
/etc/init.d/redis_6379
-  
利用该脚本可以进行重启关闭等操作。可以做软链接方便操作。
 
 -  
 
 -  
 -  
redis工具
-  
redis-server
-  
启动redis的工具
 
 -  
 -  
redis-benchmark
-  
检测本机redis运行效率的工具,redis自带
-  

 -  
常用的-c + -n 测试并发连接性能
 -  
-q -d 测试存取性能,测试完毕后退出
 -  
-t 测试某个命令可以测试多个用“,“分隔,-n 测试数量 -q 测试完退出
 
 -  
 
 -  
 -  
redis-check-aof
-  
修复aof持久化文件
 
 -  
 -  
redis-check-rdb
-  
修复rdb持久化文件
 
 -  
 -  
redis-cli
-  
命令行工具
 -  
-   
利用该工具可以进入到redis命令行模式,
 -  
远程连接
-  
-h 指定IP地址
 -  
-p 指定端口
 
 -  
 -  
help 获取帮助
 
 -   
 
 -  
 
 -  
 -  
redis常用命令
-  
存放数据
-  
set 键 值
 
 -  
 -  
获取数据
-  
get 键 值
 
 -  
 -  
查看所有键
-  
keys *
 -  
支持正则表达式
-  
例查看以v开头的:v*
 -  
例查看固定未知数的v??,一个”?“代表一个未知
 
 -  
 
 -  
 -  
判断键值是否存在
-  
exists 键
-  
返回值为1代表存在。0为不存在
 
 -  
 
 -  
 -  
删除键
-  
del 键
 
 -  
 -  
查看键类型
-  
type 键
-  
redis数据类型
-  
String:最简单的类型,就是普通的set和get,作key value缓存。
 -  
Hash:类似map的一种结构,一般就是可以将结构化的数据,比如一个对象给缓存在redis里
 -  
List:List是有序列表,可以通过list存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西
 -  
Set:Set是无序集合,自动去重。
 -  
Sorted Set:Sorted Set是排序的set,去重但可以排序,写进去的时候给一个分数,自动根据分数排序
 
 -  
 
 -  
 
 -  
 -  
重命名键
-  
rename
 -  
renamenx
-  
建议使用该方式,该命令在重命名时会检测新名是否存在,避免被覆盖的可能。
 
 -  
 
 -  
 -  
dbsize
-  
查看当前库键数
 
 -  
 -  
数据库之间切换
-  
默认redis库有16个范围0~15
 -  
select 库名
 
 -  
 -  
数据库之间数据转移
-  
move 键 库名
 
 -  
 -  
清除数据
-  
当前库
-  
flushdb
 
 -  
 -  
所有库
-  
flushall
 
 -  
 
 -  
 
 -  
 -  
redis持久化
-  
rdb
-  
生成快照保存到磁盘内,下次启动将数据重新读到内存内。
 -  
优点:占用资源少,对磁盘i/o压力小
 -  
缺点:会造成数据的不一致性
 -  
异步(半持久模式)
 
 -  
 -  
aof
-  
创建日志,将命令追加到日志末尾
 -  
优点:数据一致性高
 -  
缺点:占用资源较多,对磁盘i/o压力大
 -  
同步(全持久化模式)
 
 -  
 -  
选择参考依据
-  
性能较好,或对数据一致性要求较高采用aof
 -  
性能差,对数据一致性要求不高采用rdb
 
 -  
 -  
如果两者同时存在
-  
如果先开启了aof则会优先采用aof恢复数据
 -  
如果先开启了rdb,会先恢复rdb数据,然后在恢复aof数据,并且aof会覆盖掉rdb的数据
 
 -  
 -  
持久化配置修改
-  
在配置文件
-  
6379.conf
-  
rdb持久化配置
-  
查找save
 -  
-   
分别表示,在900秒内有一个键做变动做一次快照,在300秒内有10个键做变动则做一次快照,在60秒内,有一万个键做变动就做一次快照。满足以上任意一个条件均作快照。
 
 -   
 -  
查找rdb
 -  
-   
显示快照文件名称
 -  

 -  
在下方指明快照文件位置。
 -  

 -  
在附近可以看到该选项决定快照是否压缩,默认开启。
 
 -   
 
 -  
 -  
aof持久化配置
-  
查找append
 -  
-   
三种同步方式:
 -  
always,每次发生变化立马写入磁盘
 -  
everysec :每秒做一次快照。
 -  
no:不做同步,交给其他程序决定如何同步。
 -  

 -  
第一行决定了aof模式是否开启
 -  
第二行决定了aof文件的名称
 
 -   
 -  
aof运作机制的原因可能会造成冗余命令,在命令行输入该语句
-  
bgrewriteaof
-  
重写操作可以在特定条件下自动去除冗余的命令
 
 -  
 -  
需要注意采用该策略需要将
-  
no-appendfsync-on-rewrite no 设置位no
 -  
该语句表示新写操作不同步
 -  

 
 -  
 -  
aof比上次重写增长的比例,100为两倍
 
 -  
 
 -  
 -  
性能管理
-  
redis-cli
-  
info memory
-  
查看redis程序使用内存的大小。
 
 -  
 -  
回收策略
-  
配置文件
 -  
 -  
命令行
-  
expire 键 过期时间
 
 -  
 -  
默认回收最近使用少的键而不是存在时间最久的键
 
 -  
 
 -  
 
 -  
 -  
密码管理
-  
永久设置
-  
查找requirepass
-  
默认注释,后面可以跟密码
 
 -  
 
 -  
 -  
临时设置
-  
命令行
-  
config set requirepass 密码
 -  
设置密码后会造成原有数据丢失
 
 -  
 
 -  
 -  
连接方法
-  
redis-cli -a 密码
 -  
命令行
-  
auth 密码
 
 -  
 -  
redis-cli -a 密码 shutdown
 
 -  
 
 -  
 
 -  
 
 -  
 
 -  
 
 -  
 
 -  
 
 -  
 
 -  
 


