Linux安装redis记录
中文官网:https://www.redis.net.cn/
一、安装包下载(版本建议:5.0.4)
1、redis-xxx.tar.gz
2、xftp上传linux文件下
二、解压安装
1、解压
#上传安装包忽视此步骤,安装目录为当前目录,可修改 wget -p 目录 网址 >wget http://download.redis.io/releases/redis-xxx.tar.gz #安装包解压 >tar -zxvf redis-xxx.tar.gz 或 xzf #redis目录下执行 >make
tips:make出错的情况基本是版本兼容问题,解决方案或使用建议版本
#查看gcc 版本需5.3以上,centos7默认4.8.5,导致gcc安装redis报错 >gcc -v #安装 >yum install gcc-c++ #升级到 5.3及以上版本 >yum -y install centos-release-scl >yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils #scl命令启用只是临时的 >scl enable devtoolset-9 bash #长期生效的话 >echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
2、配置 vi redis.conf,详细参考官网(查看行数 :set nu,定位行数 :n,查找 /xxx)
port 6379 #(约80行)端口修改 requirepass foobared #(约490行)连接需auth '密码' 查看密码:config get requirepass bind 127.0.0.1 #(约70行)绑定访问主机 修改为 bind 0.0.0.0 protected-mode yes #(约90行)默认保护 修改为 no databases 16 #(约170行)默认有16个db daemoize no #(约120行)Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,简称后台启动
3、操作命令(开机自启动按需配置)
# 查看redis进程 >ps -ef | grep redis #redis.conf启动方式 后面的redis.conf可复制到其他文件夹下修改配置后启动 cp redis.conf /opt/reids/ >src/redis-server redis.conf # 进入本机redis >src/redis-cli >127.0.0.1:6379>auth password >127.0.0.1:6379>ping #返回PONG即可正常使用 #关闭redis方式:正常关闭 >127.0.0.1:6379>shutdown #关闭redsi方式:非正常关闭 >kill -9 pid
4、使用解释
redis-cli:Redis客户端程序,它是一个命令行操作工具。也可以使用telnet根据其纯文本协议操作。
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及配置下的读写性能
#同时执行 10000 个请求 >src/redis-benchmark -n 10000 -q
5、卸载:停服务删文件
#查看相关文件 >find / -name "redis" #删除文件 >rm -rf 文件
发布订阅
https://www.runoob.com/redis/redis-pub-sub.html
6、主从复制:一主二从标配
复制redis.conf
修改:
a、端口
b、pid名字
c、log文件名字
d、dump.rdb名字
7、哨兵模式:集群监听选举主节点
8、扩展集群配置 :单机三主三从搭建集群-------
Centos7 单机搭建redis集群(三主三从)
概要:A主节点down掉,A从节点会抢占A主节点
1、使用yum安装所需要的工具
yum -y install wget vim tcl gcc make
2、下载redis并解压
cd /usr/local
wget http://download.redis.io/releases/redis-3.2.8.tar.gz(获取redis,可以使用其他版本,注意ruby版本兼容)
tar -zxvf redis-3.2.8.tar.gz
3、编译安装redis源文件
cd redis-3.2.8
make
make install //后可接指定路径
4、配置内核参数(省略,暂时不知道要干什么)
--配置 vm.overcommit_memory 为1,这可以避免数据被截断
systcl -w vm.overcommit_memory=1
5、创建多实例的文件夹(对应的端口号)
cd /usr/local/
mkdir cluster
cd cluster
mkdir 7000 7001 7002 8001 8002 8003
6、修改配置文件
vim /usr/local/redis/redis.conf
bind 0.0.0.0(0.0.0.0表示所有节点都可以访问该redis)
protected-mode no
daemonize yes (设置后台运行redis)
cluster-enabled yes(开启集群,把#去掉)
cluster-node-timeout 15000 (设置请求超时时间,默认为15秒,可以自行修改)
appendonly yes (aop日志开启,会每次进行写操作都记录一条日志)
--根据不同的端口需要设置的地方
port 7000
pidfile /var/run/redis_7000.pid
dbfilename dump_7000.rdb
appendfilename "appendonly_7000.aof"
cluster-config-file nodes_7000.conf
requirepass password(集群设置密码会导致运行不了,暂无解决方法,就不要密码了)
7、复制配置文件到各个实例文件夹,并且对相应的端口号和参数进行配置。
cp -f /usr/local/redis-3.2.8/redis.conf /usr/local/cluster/7000/
:%s/name/title/g title替换name的所有
8、在bin目录启动各个节点
./redis-server /usr/local/cluster/7000/redis.conf
--使用ps -ef|grep redis | grep cluster查看是否都启动成功,ip和端口号是否都正确。
9、安装ruby、redis环境(这步的无效,采用括号里面的吧)
yum -y install ruby rubygems
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm
rvm install ruby-2.3.3(此过程耗时过长,耐心等待~)
rvm use 2.3.3 --default
gem install redis
(下载ruby(http://www.ruby-lang.org/zh_cn/downloads/)
tar zxvf ruby-2.3.0.tar.gz;解压后,进入ruby-2.3.0目录下,依次执行下面命令
命令:./configure
命令:make
命令:make install
命令:ruby -v
命令:gem install redis(这个别漏了)
进入redis的安装目录src文件夹下运行
命令:./redis-trib.rb create --replicas 1 192.168.20.200:7000 192.168.20.200:7001 192.168.20.200:7002 192.168.20.200:8001 192.168.20.200:8002 192.168.20.200:8003)
10、创建集群
(redis官方提供了redis-trib.rb 这个工具,就在解压目录src目录中,第3步中已将它复制到/usr/local/bin目录中,可以直接在命令行中使用,如果没复制的话自行复制过去即可)(这个貌似可以不用,作用不清楚,复制的话记得给予权限)
./redis-trib.rb create --replicas 1 192.168.20.200:7000 192.168.20.200:7001 192.168.20.200:7002 192.168.20.200:8001 192.168.20.200:8002 192.168.20.200:8003
留意一下屏幕,会有一句(type 'yes' or accept),输入yes,回车。(意思是:接受自主分配三主三从)
如果最后出现 说明搭建成功。
>>> Check for open slots...
>>> Check slots coverage...
11、验证集群
./redis-cli -h 127.0.0.1 -c -p 7000(加参数 -c 可以连接到集群,因为redis.conf将bind改为了ip地址,所以 -h 不可以省略)
连接到7000端口使用set存测试值 比如:set hello world
再连接到7001端口取值,redis集群可用 比如:get hello 会出现Redirected to slot [866] located at 127.0.0.1:7000 "world"
在使用cli连接到redis后可以使用info replication命令来查看主从关系等信息。
即 info replication
role:slave 表示从节点
role:master 表示主节点
12、集群卸载
a、停掉所有redis服务:ps aux | grep redis
b、kill -9 [进程号]
c、删除bin下的appendonly.aof/dump.rdb/nodes-6379.conf等文件
e、重启redis服务
f、重新构建redis集群:ruby redis-trib.rb create --replicas 1 [ip]:[port] [ip]:[port] [ip]:[port] ...
13、遇坑总结
a、redis集群密码不要设置,设置了集群启动不成功,暂时没有好的方法(采用IP现在端口限制等)
b、每个配置文件的端口都要检查好,配置也一样,细心配置流程就不会错
c、构建集群的时候redis的bin文件不要有appendonly.aof 、dump.rdb、nodes.conf这三个文件
d、版本的兼容要注意一下,有些版本过久不支持的
多ip空格隔开:bind 127.0.0.1 192.168.3.3
任意ip:bind 0.0.0.0
浙公网安备 33010602011771号