CenOS7下redis集群搭建
redis→NoSQL数据库
一、简介
1.redis是什么?
- 是一个高性能的key-value内存级数据库
- 能满足对海量数据的读写
- redis的键只能是字符串
redis的值支持多种数据类型:
字符串:string
- 哈希:hash
- 字符串列表:list
- 字符串集合:set
- 有序集合:sorted set
- HyperLogLog结构:redis2.8.9版本之后才有,用来做统计的算法
2.redis的优点?
- 高性能(Redis读的速度是11W次/s,写的速度是8.1W次/s)
- 原子性(保证数据的准确性)
- 持久存储(两种方式RDB/快照,AOF/日志)
- 主从结构,主机会自动将数据同步到从机,可以进行读写分离
- 从3.0版本开始,支持集群
3.redis的缺点?
- 由于是内存数据库,所以,单台机器存储的数据量,跟机器本身的内存大小有关。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。
- 修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务。
4.redis的应用场景?
- 主要应用在高并发和实时请求的场景
- 关注列表,粉丝列表
- 微博数,粉丝数
- 热门微博
5.redis版本下载
- https://redis.io/
- 下载最新稳定版,如下图所示。
二、redis安装
1.软件环境
- CentOS7
- JDK1.8
- redis3.2.8
- 关闭防火墙或者打开6379端口(6379为redis默认端口)
2.安装准备
所有机器上都需要安装
输入 yum -y install cpp
输入 yum -y install binutils
输入 yum -y install glibc
输入 yum -y install glibc-kernheaders
输入 yum -y install glibc-common
输入 yum -y install glibc-devel
输入 yum -y install gcc
输入 yum -y install make
输入 yum -y install tcl
或者直接输入:
yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl
3.redis安装
- 输入mkdir /usr/local/redis,建立redis文件夹.上传tar包到 /usr/local/redis ,输入tar -zxvf redis-3.0.6.tar.gz解压
- 进入解压后的目录
进入/usr/local/redis/redis-3.0.6目录下,输入 make编译并安装
- 配置环境变量 vi /etc/profile。所有节点都需要配redis环境变量
REDIS_HOME=/usr/local/redis/redis-3.0.7
:$REDIS_HOME/bin
按:wq!保存配置文件,输入source /etc/profile是配置文件生效
- 配置redis.conf文件
- 进入/usr/local/redis/redis-3.0.7目录下,输入 vi redis.conf 修改配置文件,找到daemonize no ,将这里修改为yes,这个属性表示是否是守护线程
daemonize yes #是否守护线程 logfile “redis.log” #日志路径,配置化会在redis根目录下产生日志 |
- 将redis-3.0.7/src目录下的redis-server移动到redis-3.0.7目录下
进入/usr/local/redis/redis-3.0.7/src目录下,输入mv redis-server ../
- 将redis分发到其他节点上
scp -r /usr/local/redis/ root@node1:/usr/local/
scp -r /usr/local/redis/ root@node2:/usr/local/
- 在node1和node2节点上,进入/usr/local/redis/redis-3.0.7目录下,输入vi redis.conf ,在redis.conf中设置slaveof
slaveof 192.168.163.139 6379 #192.168.163.139是master主机的ip,6379为主机的端口号,默认为该机器是master从服务器。Node2操作相同
4.redis的服务端启动
- 进入 cd /usr/local/redis/redis-3.0.6 目录,输入 redis-server redis.conf 即可启动
- 此时启动后,服务端占用当前窗口,可以按Ctrl+c停止
- 进入/usr/local/redis/redis-3.0.6/目录下,输入 vi redis.conf 修改配置文件,找到daemonize no ,将这里修改为yes,这个属性表示是否是守护线程
- 然后输入再进入安装后redis的src目录下,输入 ./redis-server /usr/local/redis/redis-3.0.6/redis.conf
- 可以输入 ps -ef|grep redis 查看redis进程
5.redis的客户端启动
- 进入 /usr/local/redis/redis-3.0.6/src 目录,node1,node2启动同上
输入 redis-server redis.conf 即可启动,
输入redis-cli启动客户端
在master上输入INFO replication,查看集群信息
6.redis测试
- 输入 set key value
- 在任意机器上输入 get key
- 也可以 keys key*
- 退出 exit
7.redis服务端停止
方法一:
- 进入安装后的bin目录
- 输入 ./redis-cli shutdown 即可停止
方法二:
- 输入 ps aux|grep nginx 查看进程
- 或者 kill -9 pid(redis的进程id) 强制杀死master进程
8.redis设置密码
两种密码设置,一种是在redis.conf文件上配置,密码永久有效,设置后需重启集群。另外一种直接是命令设置,是临时密码,设置好不需要重启集群。
- 进入/usr/local/redis/redis-3.0.6/目录下,输入 vi redis.conf 81ky701@YH.com%EF%BC%8C%E8%AE%BE%E7%BD%AE%E5%A5%BD%E5%90%8E%E9%87%8D%E5%90%AF%E9%9B%86%E7%BE%A4"">修改配置文件,设置密码ky701@YH.com,设置好后重启集群
如果对集群设置密码,那么requirepass**和masterauth**都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志。
各个节点的密码都必须一致,否则Redirected**就会失败**
auth ‘xx@YH.com’
第二种:
127.0.0.1:6379> config set masterauth xx@YH.com
127.0.0.1:6379> config set requirepass xx@YH.com
127.0.0.1:6379> config rewrite
输入config get requirepass 查看密码设置
设置密码,两种登录方式
- redis-cli -h 172.26.177.93 -p 6379 -a xx@YH.com
- ./redis-cli -h 172.26.177.93 - p 6379
172.26.177.93:6379> auth xx@YH.com
还没有评论,来说两句吧...