单点安装

wget http://download.redis.io/releases/redis-4.0.2.tar.gz
tar zxvf redis-4.0.1.tar.gz -C /usr/local
cd /usr/local/redis-4.0.2
make
make test
make PREFIX=/usr/local/redis install
cd /usr/local/redis
mkdir conf log data
cd /usr/local/redis/conf
cp /usr/local/redis-4.0.2/redis.conf .

修改内核参数:

echo 'vm.overcommit_memory = 1' >>  /etc/sysctl.conf
sysctl -p

修改配置文件

主要修改以下值

daemonize no改为daemonize yes,以守护进程模式运行
bind 127.0.0.0改为bind 0.0.0.0,监听本机所有端口

以下为一个cluster node redis.conf配置文件

[root@10-110-122-196 src]# cat /usr/local/redis-cluster-shijing2/redis/conf/7379.conf
bind 0.0.0.0
protected-mode yes
port 7379
requirepass bigdata1234@le.com
masterauth bigdata1234@le.com
maxmemory 4000000000
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/var/run/redis_7379.pid"
loglevel notice
logfile "../log/redis_7379.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "../data"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
cluster-enabled yes
cluster-config-file "7379.conf"

cluster搭建

1.将单点redis.conf复制多份

[root@10-110-122-196 conf]# pwd
/usr/local/redis-cluster-shijing2/redis/conf
[root@10-110-122-196 conf]# ll
total 28
-rw-r--r-- 1 root root 1362 May 31 16:52 7379.conf
-rw-r--r-- 1 root root 1362 May 31 16:52 7380.conf
-rw-r--r-- 1 root root 1362 May 31 16:53 7381.conf
-rw-r--r-- 1 root root 1362 May 31 16:53 7382.conf
-rw-r--r-- 1 root root 1362 May 31 16:53 7383.conf
-rw-r--r-- 1 root root 1362 May 31 16:53 7384.conf

配置文件需要修改的地方

  • 需要更改的值有port pidfile cluster-config-file logfile,使用sed命令进行批量统一更改即可

  • 需要加入的值为 cluster-enabled yes

其中dbfilename的文件名和dir路径可以不变

2.cluster的初始化

ruby环境安装

yum -y install gcc ruby ruby-devel rubygems rpm-build zlib

ruby-redis接口安装(ruby版本太低可以使用rvm安装,如果rvm无法安装,可直接升级ruby,相关升级ruby的步骤见本文最后)

gem install redis

启动各节点,初始化集群

cd到 redis/src中,找到redis-trib.rb文件,执行

redis-trib.rb  create --replicas 1 host_ip:prot1 host_ip:port2

例:./redis-trib.rb create --replicas 1 10.110.122.196:7379 10.110.122.196:7380 10.110.122.196:7381 10.110.122.196:7382 10.110.122.196:7383 10.110.122.196:7384

其中--replicas 1表示有一个slave,以上例子中共6个实例,表示3主3从

执行到这里之后基本就完成了集群的搭建;可以通过redis-cli连接到任意节点,查看 cluster info

3.redis-cluster添加密码

如果redis实例添加了密码,则需要修改redis-trib.rb文件

def connect(o={})这个函数中,

@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60)改成

@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password => "填入你的redis密码")

然后再在初始化

同时单个实例中的配置文件需要写入requirepassmasterauth的值,以便密码永久保存

如下例

requirepass bigdata1234@le.com
masterauth bigdata1234@le.com

4.查看cluster状态

10.110.122.196:7379> CLUSTER info
cluster_state:ok 10.110.122.196:7379> CLUSTER NODES
735d1a01bd4a8cba0d37fab42d1764775cb91cfd 10.110.122.196:7381@17381 master - 0 1527762245102 3 connected 10923-16383
bfd7678b97b5bb627a34e71d09b67982ecce4a7b 10.110.122.196:7384@17384 slave 735d1a01bd4a8cba0d37fab42d1764775cb91cfd 0 1527762247108 6 connected

5.节点相互meet

在redis-cli 中 使用 meet IP PORT 即可与其它节点握手

redis的优化

  • 密码设置
10.110.122.196:7379> config set requirepass Bigdata4321@le.com
  • 最大内存设置,建议设定,否则会占用系统最大内存
10.110.122.196:7379> CONFIG SET maxmemory 4G

每个节点上面都需要设置,集群最大内存大小为master最大内存总和

设置之后,使用info可以查看到最大内存值

也可以使用config get maxmemory

以上两者需要持久化保持时,必须写入配置文件中

  • 对应实例密码写入,在集群初始化的时候,可以先不进行指定,直接初始化,然后在redis-cli中使用config set masterauth "bigdata1234@le.com"config set requirepass "bigdata1234@le.com"指定两个值,同时在使用config rewrite保存,这两个值需要在所有集群实例上进行设定

rvm无法升级ruby情况的解决

因为gem需要ruby2.2.3版本以上,系统自带的可能一般为1.8.7版本可直接进行ruby新版本的安装。redis cluster中,只在初始化的时候,对ruby环境有特别要求

wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.gz
tar xvf ruby-2.6.0.tar.gz -C /usr/local
cd /usr/local/ruby-2.6.0/
./configure --prefix=/usr/local/ruby
make -j 4
make install
cd /usr/local/ruby
bin/ruby -v

然后修改redis/src中redis-trib.rb文件中的Sha-Bang

如本文中将#!/usr/bin/env ruby修改为#!/usr/local/ruby/bin/ruby

或者直接更新/etc/profile,更新env即可

[root@vm-10-124-64-251 src]# tail -2 /etc/profile
export RUBY_HOME=/usr/local/ruby
export PATH=$RUBY_HOME/bin:$PATH
[root@vm-10-124-64-251 src]# /usr/bin/env ruby -v
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]

以上ruby版本已经变更成2.6

redis单节点安装及cluster的安装的更多相关文章

  1. Redis02——Redis单节点安装

    Redis单节点安装 一.Redis的数据类型 string hash list set zset 二.安装 2.1.下载 wget http://download.redis.io/releases ...

  2. Redis单节点数据同步到Redis集群

    一:Redis集群环境准备 1:需要先安装好Redis集群环境并配置好集群 192.168.0.113 7001-7003 192.168.0.162 7004-7006 2:检查redis集群 [r ...

  3. Redis:Java链接redis单节点千万级别数据 写入,读取 性能测试

    本文是对Redis 单节点,针对不同的数据类型,做插入行测试. 数据总条数为:10058624 环境说明:             Redis 未做任何优化, 单节点    (服务器上, 内存64G) ...

  4. 【Redis学习之三】Redis单节点安装

    本文介绍两个版本:redis-2.8.18.tar.gz 和 redis-3.0.0-rc2.tar.gz,均采用源码安装方式 一.redis3.0 部署环境 redis-3.0.0-rc2.tar. ...

  5. Hbase入门教程--单节点伪分布式模式的安装与使用

    Hbase入门简介 HBase是一个分布式的.面向列的开源数据库,该技术来源于 FayChang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像 ...

  6. 单节点oracle、ASM 详细安装步骤

    目录 1.安装环境 2.系统要求 2.1 Linux安装Oracle系统要求 1.查看RAM和交换空间以及磁盘大小 2.检查所需软件包 3.配置host和主机名 2.2修改操作系统核心参数 1.创建相 ...

  7. Kafka单节点及集群配置安装

    一.单节点 1.上传Kafka安装包到Linux系统[当前为Centos7]. 2.解压,配置conf/server.property. 2.1配置broker.id 2.2配置log.dirs 2. ...

  8. redhat6.5 redis单节点多实例3A集群搭建

    在进行搭建redis3M 集群之前,首先要明白如何在单节点上完成redis的搭建. 单节点单实例搭建可以参看这个网:https://www.cnblogs.com/butterflies/p/9628 ...

  9. Redis 单节点百万级别数据 读取 性能测试.

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 这里先进行造数据,向redis中写入五百万条数据,具体方式有如下三种: 方法一:(Lua 脚本) vim ...

随机推荐

  1. 注解@requestBody自动封装复杂对象 (成功,自己的例子封装的不是一个复杂对象,只是一个简单的User对象,将jsp页面的name转成json字符串,再用JSON.stringify()传参就行了)

    注意:ajax向后台传值的时候,必须加上contentType:"application/json"; springmvc的注解@requestBody可以通过页面提交json来自 ...

  2. Factory Methods

    The static factory method pattern is a way to encapsulate object creation. Without a factory method, ...

  3. appium介绍和工作原理

    导读 Appium这个听起来既生疏也熟悉的自动化测试工具,比起原生的UiAutomator可能是异常的不起眼,可是却是有自身独当一面的能力,可以完成许多高难度作业,完成UiAutomator不可能完成 ...

  4. 【bzoj1458】士兵占领(最大流||有源汇最大流)

    转载 http://hzwer.com/2963.html Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里 ...

  5. tarjan-LCA模板

    洛谷P3379 #include <cstdio> using namespace std; ; struct etype{ int t,next; }; struct qtype{ in ...

  6. 关于exe文件传递参数方法

    段代码手工折叠 {$REGION 'Designer Managed Code'} ............ {$ENDREGION} 昨天同事问到,delphi里exe文件如何传递参数? 因为手头装 ...

  7. (转)教你分分钟搞定Docker私有仓库Registry

    转:https://www.cnblogs.com/Javame/p/7389093.html 一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方 ...

  8. SVG开发包, 20 个有用的 SVG 工具,提供更好的图像处理

    20 个有用的 SVG 工具,提供更好的图像处理 SVG 现正在 Web 设计领域变得越发流行, 你可以使用 Illustrator 或者 Inkscape 来创建 SVG 图像. 但当进行 Web ...

  9. 2019牛客国庆集训派对day1(A, B E F K)

    链接:https://ac.nowcoder.com/acm/contest/1099#question A:可知符合条件的图中间肯定存在一个由1构成的矩形,找到由1构成矩形的边界,判断出现的1的数量 ...

  10. Java并发Lock接口

    java.util.concurrent.locks.Lock接口用作线程同步机制,类似于同步块.新的锁定机制更灵活,提供比同步块更多的选项. 锁和同步块之间的主要区别如下: 序列的保证 - 同步块不 ...