一,centos7 安装redies
1.关闭防火墙:
systemctl stopfirewalld.service #停止firewall
systemctl disablefirewalld.service #禁止firewall开机启动
firewall-cmd--state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
2.配置编译环境:
sudo yum installgcc-c++
3.下载源码:
wgethttp://download.redis.io/releases/redis-4.0.11.tar.gz
解压源码:
tar -zxvf redis-4.0.11.tar.gz
4.进入到解压目录:
cd redis-4.0.11
5.执行make编译Redis:
make
注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel。
6. make test 报错:
CC Makefile.dep
You need tcl 8.5 or newer in order to run the Redis test
解决方法 :yum install tcl
再次 make test
7.安装Redis:
make install //安装完成后可以在/usr/local/bin/目录下看到一下文件
配置Redis能随系统启动:
./utils/install_server.sh
8.Redis服务查看、开启、关闭:
a.通过ps -ef|grep redis命令查看Redis进程,redis-server -v 查看版本
redis-server 直接启动redis(默认位置)
redis-server /home/redis/redis-4.0.11/redis.conf 指定配置文件启动
$ find . -type f -executable
./redis-benchmark //用于进行redis性能测试的工具
./redis-check-dump //用于修复出问题的dump.rdb文件
./redis-cli //redis的客户端
./redis-server //redis的服务端
./redis-check-aof //用于修复出问题的AOF文件
./redis-sentinel //用于集群管理
FLUSHDB——清除当前库
FLUSHALL——清除所有库
9.redis操作
每个数据库对外都是一个从0开始的递增数字命名,Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),可以通过配置databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库,不过可以随时使用SELECT命令更换数据库。
//建立哈希,并赋值
HMSET user:001 username antirez password P1pp0 age 34
HGETALL user:001
10. redis.conf 的配置信息
1、daemonize 如果需要在后台运行,把该项改为yes
2、pidfile 配置多个pid的地址 默认在/var/run/redis.pid
3、bind 绑定ip,设置后只接受来自该ip的请求
4、port 监听端口,默认是6379
5、loglevel 分为4个等级:debug verbose notice warning
6、logfile 用于配置log文件地址
7、databases 设置数据库个数,默认使用的数据库为0
8、save 设置redis进行数据库镜像的频率。
9、rdbcompression 在进行镜像备份时,是否进行压缩
10、dbfilename 镜像备份文件的文件名
11、Dir 数据库镜像备份的文件放置路径
12、Slaveof 设置数据库为其他数据库的从数据库
13、Masterauth 主数据库连接需要的密码验证
14、Requriepass 设置登陆时需要使用密码
15、Maxclients 限制同时使用的客户数量
16、Maxmemory 设置redis能够使用的最大内存
17、Appendonly 开启append only模式
18、Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
19、vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
20、vm-swap-file 设置虚拟内存的交换文件路径
21、vm-max-memory 设置redis使用的最大物理内存大小
22、vm-page-size 设置虚拟内存的页大小
23、vm-pages 设置交换文件的总的page数量
24、vm-max-threads 设置VM IO同时使用的线程数量
25、Glueoutputbuf 把小的输出缓存存放在一起
26、hash-max-zipmap-entries 设置hash的临界值
27、Activerehashing 重新hash
进入:
cd /usr/local/bin/
启动redis:
redis-server /home/redis/myredis/redis.conf
链接数据库:
redis-cli -p 6379
关闭:
shutdown
exit
redis:写每秒80000次,读每秒110000次。官网。
Redis是单进程数据库
默认十六个库,下标0到15,使用select 下标 切换数据库。
Redis:RDB数据库 持久化:通过产生快照的方式。dump.rdb文件save命令即可产生。
Redis:AOF数据库 持久化:通过复制用户的输入命令。
dump.rdb与aof持久化方式可以共存。默认先加载aof文件。如果aof文件损坏。可以使用:redis-check-aof –fi加损坏的文件名 命令修复。
11.AOF与RDB
redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。
RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;
AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。
其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,则会优先采用AOF方式来进行数据恢复,这是因为AOF方式的数据恢复完整度更高。
如果你没有数据持久化的需求,也完全可以关闭RDB和AOF方式,这样的话,redis将变成一个纯内存数据库,就像memcache一样。
Redis事务:
开启一个事务:命令MULTI 标记一个事务的开始
提交一个事务:命令EXEC 执行所有事务内的命令
放弃一个事务:DISCARD 放弃执行事务内的所有命令
WATHC key(key……):监视一个或多个key,如果在事务执行之前被修改,那么事务将被打断。
UNWATCH 取消对所有key的监视。
Redis主从复制:
1. 配从不配主
2. 从库配置:slaveof主库IP主库端口,每次断开需要重新连接,除非写进配置文件。
3. 三种配置形式:
1一主二仆
2薪火相传 上一个slave是下一个slave的Master,slave同样可以接收其他slaves的连接和同步请求。
3反客为主
命令:info replication查看主机信息。
命令:SLAVEOF 127.0.0.1 6379 作为从机复制6379库
作为从机不能进行写操作。
主机挂掉后从机依旧是从机,主机回来后,保持原先的主从复制。
哨兵模式:主机挂掉,从机自动接管成为主机
在redis.conf文件下新建sentinel.conf文件
添加:sentinel monitor host6379 127.0.0.1 6379 1
在/usr/local/bin 目录下执行redis-sentinel /路径/sentinel.conf 命令启动哨兵模式。