安装Redis

安装

mac上安装redis

以我本地为例:
redis版本为:redis-5.0.10

解压安装

cd /Users/xxx/myapp
tar -xvf redis-5.0.10.tar.gz
sudo make test
sudo make install

启动

redis-server

配置

1、
cd /Users/xxx/myapp/redis-5.0.10
建立bin,etc,db三个目录
2、src目录下的mkreleasehdr.sh,redis-benchmark, redis-check-dump, redis-cli, redis-server拷贝到bin目录。
3、
cp redis.conf etc/
vi /etc/redis.conf

#修改为守护模式

daemonize yes

#设置进程锁文件

pidfile /Users/xxx/myapp/redis-5.0.10/redis.pid

#端口

port 6379

#客户端超时时间

timeout 300

#日志级别

loglevel debug

#日志文件位置

logfile /Users/xxx/myapp/redis-5.0.10/log-redis.log

#设置数据库的数量,默认数据库为16,可以使用SELECT 命令在连接上指定数据库id

databases 16

##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

#save

#Redis默认配置文件中提供了三个条件:

save 900 1

save 300 10

save 60 10000

#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,

#可以关闭该#选项,但会导致数据库文件变的巨大

rdbcompression yes

#指定本地数据库文件名

dbfilename dump.rdb

#指定本地数据库路径

dir /Users/xxx/myapp/redis-5.0.10/db/

#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能

#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有

#的数据会在一段时间内只存在于内存中

appendonly no

#指定更新日志条件,共有3个可选值:

#no:表示等操作系统进行数据缓存同步到磁盘(快)

#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)

#everysec:表示每秒同步一次(折衷,默认值)

appendfsync everysec

4、启动redis:./bin/redis-server etc/redis.conf

5、查看日志文件:tail -f log-redis.log

安装redis单节点

安装tcl组件包(安装Redis需要tcl支持)

cd /usr/local/
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -zxvf tcl8.6.1-src.tar.gz
cd  tcl8.6.1/unix/
./configure  
make && make install

安装 redis

cd /usr/local/
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8/
make && make test && make install

要把redis作为一个系统的daemon进程去运行的,每次系统启动,redis进程一起启动

(1)redis utils目录下,有个redis_init_script脚本

(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号

(3)修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)

(4)创建两个目录:
/etc/redis(存放redis的配置文件)
/var/redis/6379(存放redis的持久化文件)

(5)修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为6379.conf

(6)修改redis.conf中的部分配置为生产环境

daemonize	yes							让redis以daemon进程运行
pidfile		/var/run/redis_6379.pid 	设置redis的pid文件位置
port		6379						设置redis的监听端口号
dir 		/var/redis/6379				设置持久化文件的存储位置

(7)启动redis,执行
cd /etc/init.d
chmod 777 redis_6379
./redis_6379 start

(8)确认redis进程是否启动,ps -ef | grep redis

(9)让redis跟随系统启动自动启动

在redis_6379脚本中,最上面,加入两行注释

#chkconfig: 2345 90 10
#description: Redis is a persistent key-value database

设置开机启动
chkconfig redis_6379 on

redis cli的使用

redis-cli SHUTDOWN,连接本机的6379端口停止redis进程

redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN,制定要连接的ip和端口号

redis-cli PING,ping redis的端口,看是否正常

redis-cli,进入交互式命令行
SET k1 v1
GET k1

安装redis cluster集群

安装redis实例

安装tcl组件包(安装Redis需要tcl支持)
cd /usr/local/
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
cd  tcl8.6.1/unix/
./configure  
make && make install

安装 redis

cd /usr/local/
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8/
make && make test && make install

在三台机器上启动6个redis实例

编写配置文件

三台机器执行:
mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7001(7001-7006)

/etc/redis下放6个配置文件,分别为:
cache01服务器:7001.conf,7002.conf,
cache02服务器:7003.conf,7004.conf,
cache03服务器:7005.conf,7006.conf

port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7001.pid 						
dir 		/var/redis/7001		
logfile /var/log/redis/7001.log
bind 192.168.80.10		
appendonly yes
准备生产环境的启动脚本

在/etc/init.d下,放6个启动脚本,分别为:
redis_7001, redis_7002,
redis_7003, redis_7004,
redis_7005, redis_7006

每个启动脚本内,都修改对应的端口号

分别在3台机器上,启动6个redis实例
cd /etc/init.d
./redis_7001 start(依次启动6个实例)
ps -ef | grep redis 进行查看

将每个配置文件中的slaveof给删除

创建集群

安装ruby
使用yum安装
yum install -y ruby
yum install -y rubygems
gem install redis
如果yum安装提示版本太低,使用wget安装ruby
卸载当前ruby
yum remove ruby
下载ruby稳定版
cd /usr/local

wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz
避免gem install redis出现缺少zlib包,先安装zlib
yum -y install zlib-devel
安装ruby
tar -zxvf ruby-2.5.3.tar.gz
cd ruby-2.5.3
./configure
make
make install
查看安装版本:
ruby -v
搭建
cd /usr/local/ruby-2.5.3
wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l ./redis-3.3.0.gem
gem list 
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin
redis-trib.rb create --replicas 1 192.168.80.10:7001 192.168.80.10:7002 192.168.80.20:7003 192.168.80.20:7004 192.168.80.30:7005 192.168.80.30:7006

之后,会发现在这个路径/etc/redis-cluster下,生成类似:node-7001.conf的配置文件,包含了master,slave的节点信息

验证
redis-trib.rb check 192.168.80.10:7001

会出现类似以下信息:

[root@cache01 ~]# redis-trib.rb check 192.168.80.10:7001 
/usr/local/lib/ruby/gems/2.5.0/gems/redis-3.3.0/lib/redis/client.rb:459: warning: constant ::Fixnum is deprecated
>>> Performing Cluster Check (using node 192.168.80.10:7001)
M: 0c3745a6ded2dca6063c74aea9cded84f02eaae6 192.168.80.10:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 9bfacf6a433b1685fad98f3a2a09dd4357fe052d 192.168.80.20:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: 56ed35e239ab54ca54bad40821b04bc3bebcbc3e 192.168.80.30:7005
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: e084216e01bfec1a2961179e31bb572d7de3e4cc 192.168.80.10:7002
   slots: (0 slots) slave
   replicates 9bfacf6a433b1685fad98f3a2a09dd4357fe052d
S: f46e186bdac66c67af5fb16aa97323daad07911b 192.168.80.20:7004
   slots: (0 slots) slave
   replicates 0c3745a6ded2dca6063c74aea9cded84f02eaae6
S: 54f1b5c253570dbd6b2e0d79ee39c0ea546a8a09 192.168.80.30:7006
   slots: (0 slots) slave
   replicates 56ed35e239ab54ca54bad40821b04bc3bebcbc3e
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

集群使用redis-cli客户端

进入:

redis-cli -c -h 192.168.80.10 -p 7001

常用问题

处理:/var/redis/run/redis_6379.pid exists, process is already running or crashed

用安装文件启动

redis-server /etc/redis/6379.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值