设为首页 收藏本站
查看: 1985|回复: 1

[经验分享] Redis单机+集群安装部署

[复制链接]
累计签到:133 天
连续签到:1 天
发表于 2018-4-12 13:50:25 | 显示全部楼层 |阅读模式
  
                         Redis   安装
单机安装.............................................................................................................. 2
1.编译redis....................................................................................................... 2
2.修改参数文件................................................................................................. 2
3.修改相关系统参数.......................................................................................... 3
4.启动redis....................................................................................................... 3
5.检查启动是否成功.......................................................................................... 3
集群安装.............................................................................................................. 3
1.编译redis....................................................................................................... 4
2.redis 节点....................................................................................................... 4
3.修改配置文件:............................................................................................. 4
4.操作系统参数修改.......................................................................................... 6
5.启动redis并创建集群..................................................................................... 6
6.检查集群状态................................................................................................. 7
参考文档............................................................................................................ 7
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过RedisSentinel提供高可用,通过Redis Cluster提供自动分区
单机安装
在redis官网下载需对应的版本!
注意: redis3.0之前是不支持集群模式(多个主从模式),只支持主从模式!
  1. 编译redis
将下载好的安装包上传到linux服务器,并且解压出来: (放在opt目录下。)
tar -xvf redis-3.0.7.tar.gz
[root@nameNoderedis-3.0.7]#cd redis-3.0.7
[root@nameNoderedis-3.0.7]# make install
报错一  没用gcc
安装过程
    yum install cpp
    yum install binutils
    yum install glibc
    yum install glibc-kernheaders
    yum install glibc-common
    yum install glibc-devel
    yum install gcc
    yum install make
注意gcc依赖了很多东西,有些包可能系统已经 装了,有些没有,防止出意外,最好都走一遍
2、报错二,没有tcl8.5, 安装tcl8.5,过程如下
安装过程
tar -zxvf  tcl8.5.tar.gz
./configure
make
make install
3、安装redis
make
make test  //检查一下,看看有没有问题
make install
如果make继续报错,信息如下:error:jemalloc/jemalloc.h: No such file or directory
执行 make MALLOC=libc 就行
注意的是,为了防止出意外,make失败后在make的话,清理一下,执行make clean
make命令执行完成后,会在src目录下生成6个可执行文件,同时在/usr/local/bin目录下也会有这6个文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump、redis-sentinel,它们的作用如下:
redis-server:            Redis服务器的daemon启动程序;
redis-cli:               Redis命令行操作工具。当然,你也可以用telnet根据其纯                                                             文本协议来操作;
redis-benchmark:        Redis性能测试工具,测试Redis在你的系统及你的配置下的                                                        读写性能;
redis-check-aof:          更新日志检查;
redis-check-dump:        用于本地数据库检查;
redis-sentinel:          Redis实例的监控管理、通知和实例失效备援服务,是Redis                                                          集群的管理工具;
2. 修改参数文件
   在编译完成后会在编译目录下(即redis-3.0.7)产生一个配置文件--redis.conf,在启动redis时,默认情况下会读取/etc/redis.conf 文件,为了方便管理,以下会将参数文件,日志文件和数据文件都放在redis-3.0.7目录下的对应目录中.
   创建conf目录 ,用来存放参数文件
   创建data目录 ,用来存放相关数据文件
   创建log目录,用来存放日志文件
修改参数文件redis.conf:
daemonize yes  #是否以后台daemon方式运行,默认不是后台运行
pidfile /var/run/redis/redis.pid               #redis的PID文件路径
bind 192.168.2.110      #绑定主机IP,默认值为127.0.0.1,
logfile /opt/redis-3.0.7/log/redis-6379.log    #定义log文件位置,
       dir /opt/redis-3.0.7/data             #本地数据库存放路径
appendonly yes                                                       #打开aof持久化,不适用save
appendfilename "appendonly-6379.aof"         #aof存储文件  
appendfsync everysec                                           #每秒一次aof写
maxmemory  4096m                                           #最大可用内存,根据情况改
  
maxmemory-policy allkeys-lru                   #内存使用策略
3. 修改相关系统参数
#¥#vm.overcommit_memory =1
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 1000 >/proc/sys/net/core/somaxconn
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf  
4. 启动redis
[root@nameNoderedis-3.0.7]# redis-server /opt/redis-3.2.1/redis.conf
需要指定配置文件在哪
5. 检查启动是否成功
[iyunv@nameNode redis-3.0.7]#  ps -tanlp | grep redis
LISTEN    0     128           192.168.2.110:6379                   *:*     users:(("redis-server",17379,4))
#############测试Redis##################
[root@nameNoderedis-3.0.7]# redis-cli -h 192.168.2.110 -p 6379
10.168.85.25:6379>set test hello
OK
10.168.85.25:6379>get test
"hello"
集群安装
    可能需要的依赖包:
      yum install gcc zlib ruby-devel ruby rubygems.noarch
gem install -l redis-3.0.7.gem
1. 编译redis
该过程和单机安装一样
2. redis 节点
192.168.2.199:6380         192.168.2.199:7380主从
192.168.2.199:6381         192.168.2.199:7381主从
192.168.2.199:6382         192.168.2.199:7382主从
      
3. 修改配置文件:
   由于是集群模式,配置文件较多,且大多重复,这里将参数文件分为2类,普通参数文件和特例参数文件。
redis-common.conf为普通参数文件,该文件中的参数为公共参数,内容如下:
#genneral conf
daemonize no
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
databases 16
dir/usr/local/redis-3.0.7/data
slave-serve-stale-datayes
#slave只读
slave-read-onlyyes
repl-disable-tcp-nodelayyes
slave-priority100
#打开aof持久化
appendonly no
#每秒一次aof写
appendfsynceverysec
#关闭在aof rewrite的时候对新的写操作进行fsync
no-appendfsync-on-rewriteyes
auto-aof-rewrite-min-size64mb
lua-time-limit5000
#打开redis集群  
cluster-enabledyes
#节点互连超时的阀值  
cluster-node-timeout15000
#当其他节点的master下没有可用的从库时,有多个从库的master会割让一个slave给他,保证整个集群的可用性
cluster-migration-barrier1
slowlog-log-slower-than10000
slowlog-max-len128
notify-keyspace-events""
#压缩
hash-max-ziplist-entries512
hash-max-ziplist-value64
list-max-ziplist-entries512
list-max-ziplist-value64
set-max-intset-entries512
zset-max-ziplist-entries128
zset-max-ziplist-value64
activerehashingyes
client-output-buffer-limitnormal 0 0 0
client-output-buffer-limitslave 256mb 64mb 60
client-output-buffer-limitpubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsyncyes
redis-6380.conf 改文件为每个节点的参数,需要创建6份,内容如下(不通节点需要更具情况修改):
#包含通用配置  
include/usr/local/redis-3.0.7/conf/redis-common.conf
#监听tcp端口
port 6380
#日志文件
logfile"/usr/local/redis-3.0.7/log/redis-6380.log"
#最大可用内存  
maxmemory 100m
# volatile-lru ->remove the key with an expire set using an LRU algorithm
# allkeys-lru-> remove any key according to the LRU algorithm
#volatile-random -> remove a random key with an expire set
# allkeys-random-> remove a random key, any key
# volatile-ttl-> remove the key with the nearest expire time (minor TTL)
# noeviction-> don't expire at all, just return an error on write operations
maxmemory-policyallkeys-lru
#aof存储文件  
appendfilename"appendonly-6380.aof"
#rdb文件,只用于动态添加slave过程  
dbfilenamedump-6380.rdb
#cluster配置文件(启动自动生成)  
cluster-config-filenodes-6380.conf  
#部署在同一机器的redis实例需要注意
auto-aof-rewrite-percentage80-100
   
4. 操作系统参数修改
vm.overcommit_memory= 1
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo 11000>/proc/sys/net/core/somaxconn
5. 启动redis并创建集群
  首先将每个redis逐个启动,然后构建集群,(配置文件路径需要根据自己情况配置)
redis-server/usr/local/redis-3.0.7/conf/redis-6380.conf
redis-server/usr/local/redis-3.0.7/conf/redis-6381.conf
redis-server/usr/local/redis-3.0.7/conf/redis-6382.conf
redis-server/usr/local/redis-3.0.7/conf/redis-7380.conf
redis-server/usr/local/redis-3.0.7/conf/redis-7381.conf
redis-server/usr/local/redis-3.0.7/conf/redis-7382.conf
6redis启动后使用redis-trib.rb 构建集群,改命令在编译后的redis目录下的src目录中:
./redis-trib.rb create --replicas 1192.168.2.199:6380 192.168.2.199:6381 192.168.2.199:6382 192.168.2.199:7380192.168.2.199:7381 192.168.2.199:7382
主从顺序为写入先后顺序,前3个为主,后3个为从
一.安装rubyrubygems之前安装其他ruby包和文档
yum install -y ruby-devel ruby-docs ruby-riruby-rdoc
二、编译安装Ruby-2.4.0
安装ruby-2.4.0
# tar xzf ruby-2.4.0.tar.gz
# cd ruby-2.4.0
# ./configure --prefix=/usr/local/ruby
# make
# make install
添加到环境变量
# vi /etc/profile
export PATH=/usr/local/ruby/bin:$PATH
# source /etc/profile
查看ruby版本号
# ruby -v
ruby 2.4.0p273(2014-11-13 revision 48405)[x86_64-Linux]
三、安装rubygems-2.6.0
# tar xzf rubygems-2.6.0.tgz
# cd rubygems-2.6.0
# ruby setup.rb
提示:gem是一种文件组织的包,一般的ruby的很多插件都有由这种各种的包提供。
# gem -v
2.6.0
# which gem
/usr/local/ruby/bin/gem
四:安装rubyrubygems之后出现如下问题:
解决方法如下:
/usr/bin/gem source list
/usr/bin/gem sources --removehttps://rubygems.org/ (先移除原生源,现在不可用,换上淘宝的或者自己下载安装)
/usr/bin/gem install redis-3.2.0.gem
下载地址:http://download.csdn.net/detail/lihcc/8722699
/usr/bin/gem install redis-3.2.0.gem
/usr/bin/gem source list
[iyunv@localhost ~]# /usr/bin/gem sourcelist
*** CURRENT SOURCES ***
6. 检查集群状态
   随便使用一个redis服务均可以查看状态
         [iyunv@zabbix src]# ./redis-trib.rb info192.168.2.199:6380
192.168.2.199:6380(702dabbe...) -> 1 keys | 5461 slots | 1 slaves.
192.168.2.199:6382(667cfb6b...) -> 0 keys | 5461 slots | 1 slaves.
192.168.2.199:6381(0c641044...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 1 keys in 3masters.
0.00 keys perslot on average.
或者使用shell 客户端连接查看:
随便使那个redis均可以查看状态
[iyunv@zabbix bin]# ./redis-cli -h 192.168.2.199  -p 7382
192.168.2.199:7382> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:17
cluster_my_epoch:17
cluster_stats_messages_sent:9027149
cluster_stats_messages_received:9027149
  参考文档
官方文档:
非官方:
该文档有介绍集群的各种基本操作,也可以参考官方文档
命令解释:
集群教程:


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-448656-1-1.html 上篇帖子: Rabbitmq单机版+集群版安装部署 下篇帖子: CDH集群安装部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表