Redis中文官网https://www.redis.net.cn/tutorial/3501.html
1.yum安装Redis
①、先安装扩展,执行yum install epel-release -y
②、安装Redis 执行yum install redis
补充:ssh下直接拖拽文件到ssh窗口无法上传到linux主机是因为没有安装yum install lrzsz -y
yum安装查看安装文件路径:rpm -ql redis
③、yum安装完以后,默认会将redis-cli加入环境变量,直接执行redis-cli即可登陆
2.手动安装Redis
安装之前先使用yum安装gcc等依赖包:
yum -y install gcc automake autoconf libtool make
yum install gcc-c++
提示:未安装gcc编译环境可能导致make安装redis报错,重新安装gcc后需要使用make clean清除之前的残留文件再使用make安装
①、下载安装包wget http://download.redis.io/releases/redis-3.2.6.tar.gz
②、解压 tar xzvf redis-3.2.6.tar.gz到要存放的目录,如创建/data/redis-3.2.6
③、切换到安装目录cd redis-3.2.6
④、make编译
⑤、安装完以后,在安装目录下单独创建一个目录如Redis6380,拷贝
cp ./src/redis-server ./redis6380/
cp ./redis.conf ./redis6380/
过滤配置文件信息:grep '^[^$|#;]' redis.conf >redis.conf2
将原配置文件重命名备份,将过滤后的配置文件重命名为redis.conf
修改redis配置文件端口号如:port 6380 (默认只有一个redis的情况不需要修改端口号,修改端口号一般用于多实例安装)
开启运行运行守护进程,使之后台运行:daemonize yes
⑤、运行./redis-server ./redis.conf
⑥、登陆cd src,执行redis-cli
⑦、多实例的情况下,直接执行redis-cli进入的是6379端口对应的实例,可以使用redis-cli -p 6380登陆6380端口对应的实例,其他多实例同理
⑧、可通过redis-cli --help查询命令使用帮助
127.0.0.1:6380> keys * //查看redis所有键
1) "lisi"
2) "foo"
3) "zhangsan"
3.redis数据库操作命令,请参考redisdoc.com4.Redis配置文件redis.conf重要参数
bind 127.0.0.0 //监听ip,以便设置为服务器内网ip
daemonize no -> yes //后台运行
port 6379 //端口
appendonly no -> yes //日志开关
logfile stdout -> ./logs/redis.log //日志文件
dbfilename dump.rdb //持久化数据文件,相当于数据库的数据文件,可修改为指定路径
5.关闭Redis数据库
[root@localhost redis6380]# redis-cli
127.0.0.1:6379> SHUTDOWN
not connected> EXIT
6.Redis 3.2新特性
解决访问安全
Bind 指定IP进行监听 bind 192.168.47.xxx ip2 ip3
禁止protected-mode
protected-mode yes/no //yes是开启
增加requirepass {password}
requirepass 123456 //设置保护模式的密码
在redis-cli中使用时输入auth {password}进行认证
[root@localhost redis6380]# redis-cli -p 6380
127.0.0.1:6380> get foo
(error) NOAUTH Authentication required.
127.0.0.1:6380> auth root
OK
127.0.0.1:6380> set foo zhangsan
OK
127.0.0.1:6380> get foo
"zhangsan"
7.获取当前redis配置信息
CONFIG GET *
8.变更运行配置
CONGFIG SET loglevel "notice"
127.0.0.1:6380> config set loglevel "notice"
OK
127.0.0.1:6380> config get loglevel
1) "loglevel"
2) "notice"
9.Redis数据存储
10.持久化
RDB持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。AOF文件中的命令全部已Redis协议的格式来保持,新命令会被追加到文件的末尾。redis还可以在后台对AOF文件进行重写(rewrite),使得AOF文件的体积不会超出保存数据集状态所需的实际大小。
Redis还可以同时使用AOF持久化和RDB持久化。在这种情况下,当redis重启时,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。
你甚至可以关闭持久化功能,让数据只在服务器运行时存在。
持久化策略:
日志文件 appendonly yes/no
save 900 1 //表示900s(15分钟)内有1个更改,即将数据写入硬盘
save 300 10 //表示300s(5分钟)内有10个更改,即将数据写入硬盘
save 60 10000 //表示60s(1分钟)内有10000个更改,即将数据写入硬盘
11.同步
appendfsync everysec
no 表示等操作系统进行数据缓存同步到磁盘。linux约30秒(快)
always 表示每次更新操作后调用fsync()将数据写到磁盘(慢,安全)
everysec 表示每秒同步一次(折中,默认值)