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官网下载需对应的版本! 注意: redis3.0之前是不支持集群模式(多个主从模式),只支持主从模式! 1. 编译redis 将下载好的安装包上传到linux服务器,并且解压出来: (放在opt目录下。) tar -xvf redis-3.0.7.tar.gz 报错一 没用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需要指定配置文件在哪 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################## 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 6个redis启动后使用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个为从 一.安装ruby和rubygems之前安装其他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 四:安装ruby和rubygems之后出现如下问题: 解决方法如下: /usr/bin/gem source list /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 三 参考文档官方文档: 非官方: 该文档有介绍集群的各种基本操作,也可以参考官方文档 命令解释: 集群教程:
|