redis
1、指出多多种数据类型,存储。
2、时间较长,数据变动较少的。放到redis缓存,读写速度快。
3、单线程,数据不会丢失。比较简单,减少不必要的上下文切换。
3、多路io复用。请求可以不断进,不影响速度。
5、主栈更新数据,redis也要跟新
6、memcache,数据没有实际东西保存东西,断电会丢失。redis会在文件追加,不怕。
7、codis,有代理。解决
打开两台虚拟机
[root@server1 ~]# systemctl stop mysqld ##mysql要停止
[root@server1 ~]# systemctl disable mysqld
Removed symlink /etc/systemd/system/multi-user.target.wants/mysqld.service.
[root@server1 ~]# tar zxf redis-5.0.3.tar.gz ##解压
[root@server1 ~]# cd redis-5.0.3/
[root@server1 redis-5.0.3]# make && make install ##编译,下载
[root@server1 redis-5.0.3]# cd utils/
[root@server1 utils]# ./install_server.sh ##启动脚本
全部默认yes,默认开启
[root@server1 utils]# netstat -tnlp ##自动安装
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 5317/redis-server 1
更改配置文件bind为0.0.0.0
[root@server1 utils]# vim /etc/redis/6379.conf
[root@server1 utils]# /etc/init.d/redis_6379 restart ##脚本重起
[root@server1 utils]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 5347/redis-server
传到server2
[root@server1 ~]# scp -r redis-5.0.3 root@172.25.38.2:/root #传到server2
server2:
[root@server2 ~]# cd redis-5.0.3/
[root@server2 redis-5.0.3]# make install ##直接下载
[root@server2 redis-5.0.3]# cd utils/
[root@server2 utils]# ./install_server.sh ##安装
[root@server2 utils]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1512/redis-server 1
[root@server2 utils]# vim /etc/redis/6379.conf ##更改bind
[root@server2 utils]# /etc/init.d/redis_6379 restart
[root@server2 utils]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 1572/redis-server 0
两台虚拟机的redis开启成功
主从复制:
[root@server2 utils]# vim /etc/redis/6379.conf
slaveof 172.25.38.1 6379 ##加入句,在最后一行
测试
srver1:
[root@server1 ~]# redis-cli ##用客户端测试
127.0.0.1:6379> set name wsp
OK
127.0.0.1:6379> get name
"wsp"
127.0.0.1:6379>
server2:
[root@server2 utils]# redis-cli ##server2来看数据
127.0.0.1:6379> get name
"wsp"
127.0.0.1:6379>
AOF不怕突然停机,重新读取。求稳
RDB快照的方式。速度快
高可用,在redis的slave,被称为哨兵。看哨兵
将server3配置安装redis与server2一样:
并加入slave。主从。
在server1中复制高可用的配置文件
[root@server1 redis-5.0.3]# cp sentinel.conf /etc/redis/
更改配置文件
[root@server1 ~]# vim /etc/redis/sentinel.conf
##传给其他两个点
[root@server1 ~]# scp /etc/redis/sentinel.conf root@172.25.254.2:/etc/redis/
[root@server1 ~]# scp /etc/redis/sentinel.conf root@172.25.38.3:/etc/redis/
启动
[root@server1 ~]# redis-server /etc/redis/sentinel.conf --sentinel
[root@server2 utils]# redis-server /etc/redis/sentinel.conf --sentinel
[root@server3 utils]# redis-server /etc/redis/sentinel.conf --sentinel
测试:
关闭server1:
[root@server1 ~]# redis-cli
127.0.0.1:6379> shutdown ##打开关闭
[root@server1 ~]# /etc/init.d/redis_6379 start
Starting Redis server...
我们可以看到自动转