redis从搭建到分布式环境搭建

3 篇文章 0 订阅

一、安装

1、去官网下载:http://download.redis.io/releases/

2、redis-2.8.17.tar.gz下载以后的文件放到服务器目录下(如:/usr/local  以下全部以此路径)

3、解压

tar xf redis-2.8.17.tar.gz

4、进入redis-2.8.17目录下进行编译和安装,

编译:执行make命令

make

安装:执行make PREFIX=/usr/local/redis install

make PREFIX=/usr/local/redis install

二、启动

1、进入redis的bin目录下

cd /usr/local/redis/bin

2、复制redis.conf到/usr/local/redis/bin下

cp /usr/local/redis-2.8.17/redis.conf /usr/local/redis/bin/

3、编辑刚才修改的文件

vim redis.conf 

搜索 daemonize;默认值为no,修改为yes,保存退出

4、启动:

./redis-server redis.conf 

启动时若不加redis.conf 不会后台允许

查看redis进程是否启动成功:ps -ef|grep redis

5、停止命令

kill  进程号

 或 通过客户端关闭

./redis-cli shutdown

三、修改远程端口和连接地址

1、修改端口号

cd /usr/local/redis/bin/

vim redis.conf

搜索 port  默认值:6379

2、外部连接地址

在(三 1)中搜索bind

放开注释

127.0.0.1表示只有本机可以连接

0.0.0.0表示允许任何ip连接

实际开发中可以指定特定ip可以连接

继续搜索timeout

0表示没有超时时间,可以指定一个超时时间:300  单位是秒

保存退出

四、启动多个redis

方法1 覆盖端口

./redis-server redis.conf --port  6380
./redis-server redis.conf --port  6381
./redis-server redis.conf --port  6382

方法2 多个配置文件方法:复制redis.conf文件,修改端口号

./redis-server redis6380.conf
./redis-server redis6381.conf
./redis-server redis6382.conf

方法3 copy多个bin目录,修改每个配置文件的端口,启动自己的配置文件

cd /usr/local/redis/bin6380
./redis-server redis.conf


cd /usr/local/redis/bin6381
./redis-server redis.conf


cd /usr/local/redis/bin6382
./redis-server redis.conf

五、客户端的使用

进入bin目录

./redis-cli 

或者指定端口

#启动6380
./redis-cli -p 6380
#启动6381
./redis-cli -p 6381

在客户端关闭redis命令

shutdown

六、密码设置

cd /usr/local/redis/bin/

vim redis.conf

搜索 requirepass 

打开注释,默认密码是foobared,修改为自己的密码即可。

保存退出

密码生效需要重新启动redis

启用密码后,若使用客户端会提示没有授权,每个命令都要授权才能执行。./redis-cli 执行get key命令提示需要授权;执行授权命令 auth 设置的密码

七、redis事务

 redis事务可以一次执行多个命令并且有以下两个特征
   事务是一个单独的隔离操作:

  • 事务中的所有命令都会被序列化,按顺序地执行
  • 事务在执行过程中,不会被其他客户端发来的命令请求所打断

事务是一个原子操作:

  • 事务中的命令要么全部执行,要么全部不执行

登录redis客户端,执行一个事务

取消事务,设置k3值错误了,取消掉

八,redis主从复制

主从复制特点

  • Master可以拥有多个Slave; 
  • 多个Slave可以连接同一个Master,还可以连接到其他的Slave;
  • 主从复制不会阻塞Maseter,在同步数据时,Master可以继续处理Client请求
  • 提供系统的伸缩性

redis主从复制配置,只需在从数据库的配置文件中加上如下命令即可,主数据库不需要任何修改

  • slaveof    主数据库地址  主数据库端口

 

配置步骤:

  • 从新安装一份redis作为从库
  • 设置端口号:如6380
  • 设置slaveof    主数据库地址  主数据库端口
  • 设置masterauth  主库密码(主库未启用密码可不用设置)

注意:修改从库为后台启动,

保存退出,启动从库。保证主库已经启动服务,自行测试结果。

 

九、redis持久化

redis持久化机制:支持两种方式RDB和AOF,RDB一定时间取存储文件(保证效果可用此),AOF默认每秒去存储历史命令,官方建议两种方式同时使用。没有持久化的redis和mamcache一样,相当于一个纯内存数据库。不加磁盘存储数据丢就丢了...

RDB默认开启redis.conf中的配置如下:

save 900 1    #900秒内超过1个key被修改,则发起快照保存

save 300 10    #300秒内超过10个key被修改,则发起快照保存

save 60 10000    #60秒内超过10000个key被修改,则发起快照保存

dbfilename dump.rdb   #持久化数据存储在本地文件名

dir  ./   #持久化数据存储在本地路径

 

AOF默认开启redis.conf中的配置如下:

appendonly  no/yes   #启动aof持久化,持久化有三种方式

appendfsync  always  #收到写命令立刻写入磁盘,效率最慢,但是保证完整的持久化

appendfsync  everysec   #每秒写一次硬盘,性能和持久化方面做的很好

appendfsync  no  #完全依赖os,性能最佳,但是持久化没有保证

十、redis集群创建

redis集群的特点:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽

(2)节点的fa11是通过集群中超过半数的节点检测失效时才生效

(3)客户端与 redis节点直连,不需要中间 proxy层,客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4) redis-cluster把所有的物理节点映射到[0-16383]slot上, cluster负责维护 nodec< - >slot< - >value

Reds集群中内置了16384个哈希槽,当需要在Redis集群中放置一个key- value时, redis先对key使用crc16算法算出一个结果,然后把结果对16384求余数,这样每个key都会对应一个编号在0-16383之间的哈希槽, redis会根据节点数量大致均等的将哈希槽映射到不同的节点

redis集群的搭建:

redis集群中至少应该有三个节点,要保证集群的高可用,需要每个节点有一个备份机,则至少需要6台服务器

搭建伪分布式,可用一台虚拟机运行6个redis实例,然后修改redis的端口即可

修改6台redis配置文件为后台启动和运行任何ip访问或者单机的修改端口号

----以下以6台虚拟机为例----

6台虚拟机分别安装好redis,目录/usr/local/redis/

集群环境搭建:

1、分别进入/usr/local/redis/bin目录,修改redis.conf文件

daemonize yes

bind 0.0.0.0

不需要设置密码,因为是6台虚拟机,所以不需要修改端口号,若是在一台机器上需要修改端口号。

 

2、使用ruby脚本搭建集群,需要ruby运行环境

[sxxaad@192 bin] yum -y install ruby rubygems

3、上传并安装ruby脚本运行使用的包  以redis-3.3.5.gem为例

分别上传以上文件到6台虚拟机中,完成以后执行以下命令安装

gem install redis-3.3.5.gem

安装成功以后分别进入6台虚拟机的/usr/local/redis-2.8.17/src下查看所有文件,会有一个redis-trib.rb文件,此文件可以移动,给它移动到redis的bin目录下执行以下命令:

./redis-trib.rb create --replicas 1 192.168.0.1:6379 192.168.0.2:6379 192.168.0.3:6379 192.168.0.4:6379 192.168.0.5:6379 192.168.0.6:6379 

执行之前请自查以下可能会出现的问题:

  • 确保所有redis没有开启主从
  • 确保所有的redis.conf文件中的注释已经打开并且开启集群 cluster-enabled yes
  • 停掉所有redis后删除/usr/local/redis/bin下的dump.rdb和nodes.conf

集群搭建成功连接客户端使用以下命令

./redis-cli -p

当使用set/get命令时会自动重定向到某个节点上。

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专业技术人员继续教育学习助手

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值