一 windos系统安装
1.下载
下载网址:https://github.com/MicrosoftArchive/redis/releases
文件介绍:
redis-benchmark.exe #基准测试
redis-check-aof.exe # aof
redischeck-dump.exe # dump
redis-cli.exe # 客户端
redis-server.exe # 服务器
redis.windows.conf # 配置文件
2.启动
2.1 使用dos命令redis-server.exe redis.windows.conf,启动redis 服务。
2.2 点击server.bat批处理文件启动Redis
二 Linux系统安装(centos为例)
2.1 单击版安装
2.1.1 下载redis安装包
方式一:直接使用centos下载wget http://download.redis.io/releases/redis-4.0.6.tar.gz
方式二:本地下载之后使用工具上传到centos
2.1.2 解压安装包
tar -zxvf redis-4.0.6.tar.gz
2.1.3 安装redis的编译环境Gcc(redis是C语言开发的)
yum install gcc
2.1.4 编译安装redis
make install PREFIX=/usr/local/redis-4.0.6
将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录(此步骤可以不执行,这样是将redis运行工具路径加入环境变量,方便后续操作)
2.1.5 启动:
启动方式一:Redis前台默认启动
进入redis安装目录,并启动Redis服务
cd /usr/local/redis/bin/
./redis-server
启动方式二:Redis使用配置文件启动
拷贝源码中的redis.conf文件到redis的安装目录
cp /export/servers/redis/redis.conf /usr/local/redis/
修改redis.conf的属性
daemonize no è daemonize yes
启动redis服务
cd /usr/local/redis
bin/redis-server ./redis.conf
启动方式三:配置Linux自动启动
准备自启动配置文件
cp /export/servers/redis/utils/redis_init_script /etc/init.d/redisd
修改自启动配置文件
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/${REDISPORT}.conf"
准备开机启动的配置文件
cp /export/servers/redis/redis.conf /usr/local/redis/6379.conf
设置开机启动
chkconfig redisd on
2.1.6 判断启动成功
当redis下含有bin目录时就表示启动成功,也可以使用ps -ef|grep redis 查看进程是否成功,或者使用客户端工具ping-pong机制。
2.1.7 连接redis
./redis-cli -h ip -p port
也可以使用客户端软件连接(redis-desktop-manager) 不过这个只能连接单击版的redis
Jedis连接在我其他的文章中有详细介绍
2.2 集群版安装
2.2.1 集群架构图
架构细节:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.通过投票机制
(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点
2.2.2 集群搭建
集群一般至少要6个节点,3个节点做集群,3个做备份,如果需要搭建伪分布式的话记得修改port端口
(1)使用ruby脚本搭建集群,安装ruby运行环境
yum install ruby
yum install rubygems
(2)上传安装ruby运行时所使用的包redis-3.0.0.gem
gem install redis-3.0.0.gem
查看redis-trib.rb 脚本所在的目录
cd redis-3.0.0/src
ll *.rb
(3)复制以及安装好的redis的实例(删除里面的rdb,aof文件)拷贝6份到目的机器(伪分布式需要更改端口号)
下面使用的是伪分布式
- 创建目录:
[root@localhost local]# mkdir redis-cluster |
- copy 之前搭建好的redis 并改名为redis01
[root@localhost local]# cp redis/ redis-cluster/redis01 -r |
- 进入redis-cluster目录中cd到redis01的bin目录,删除数据文件
[root@localhost local]# cd redis-cluster/redis01/bin [root@localhost bin]# rm -rf *.rdb *.aof |
- 修改redis.conf,取消注释,如图,保存退出
[root@localhost bin]# vim redis.conf |
- cd到redis-cluster目录
- copy六份并分别命名为redis02,redis03,redis04,redis05,redis06
[root@localhost redis-cluster]# cp redis01 redis02 -r [root@localhost redis-cluster]# cp redis01 redis03 -r [root@localhost redis-cluster]# cp redis01 redis04 -r [root@localhost redis-cluster]# cp redis01 redis05 -r [root@localhost redis-cluster]# cp redis01 redis06 -r |
- cd到每一个实例的bin目录,修改每一个redis实例的端口分别改为7001-7006
[root@localhost bin]# vim redis.conf |
(4)启动脚本,关闭脚本的编写
启动脚本
vim redis-cluster-start-all.sh
添加如下文字到文件中:
cd /usr/local/redis-cluster/redis01/bin ./redis-server redis.conf
cd /usr/local/redis-cluster/redis02/bin ./redis-server redis.conf
cd /usr/local/redis-cluster/redis03/bin ./redis-server redis.conf
cd /usr/local/redis-cluster/redis04/bin ./redis-server redis.conf
cd /usr/local/redis-cluster/redis05/bin ./redis-server redis.conf
cd /usr/local/redis-cluster/redis06/bin ./redis-server redis.conf |
- 修改文件:redis-cluster-start-all.sh 的权限,让其可执行。
chmod u+x redis-cluster-start-all.sh |
- 执行启动
[root@localhost redis-cluster]# ./redis-cluster-start-all.sh
关闭脚本
首先使用:vim 命令创建一个文件 redis-cluster-stop-all.sh
编辑文件,添加如下:
cd /usr/local/redis-cluster/redis01/bin ./redis-cli -p 7001 shutdown
cd /usr/local/redis-cluster/redis02/bin ./redis-cli -p 7002 shutdown
cd /usr/local/redis-cluster/redis03/bin ./redis-cli -p 7003 shutdown
cd /usr/local/redis-cluster/redis04/bin ./redis-cli -p 7004 shutdown
cd /usr/local/redis-cluster/redis05/bin ./redis-cli -p 7005 shutdown
cd /usr/local/redis-cluster/redis06/bin ./redis-cli -p 7006 shutdown |
修改文件:redis-cluster-stop-all.sh 的权限,让其可执行。
chmod u+x redis-cluster-stop-all.sh
执行关闭
[root@localhost redis-cluster]# redis-cluster-stop-all.sh
(5)启动完所有redis节点后,使用ruby脚本搭建集群
- 从解压目录下的src下的拷贝redis-trib.rb文件到redis-cluster目录中
- 执行创建:
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006 |
(6)集群访问
方式一:客户端访问 redis01/bin/redis-cli -p 7002 -c(加了一个-c字段)
方式二:使用JedisCluster对象连接(在其他文章中有介绍)