单点安装

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. 去它的h5,我还是用js写原生跨平台app吧

    智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...

  2. FCK编辑器漏洞总结

    1.查看编辑器版本FCKeditor/_whatsnew.html————————————————————————————————————————————————————————————— 2. Ve ...

  3. JS正则汇总

    1.基本定义: \s:用于匹配单个空格符,包括tab键和换行符; \S:用于匹配除单个空格符之外的所有字符; \d:用于匹配从0到9的数字; \w:用于匹配字母,数字或下划线字符; \W:用于匹配所有 ...

  4. Linux C 程序 进程控制(17)

    进程控制 1.进程概述现代操作系统的特点在于程序的并行执行.Linux是一个多用户多任务的操作系统.ps .pstree 查看进程进程除了进程id外还有一些其他标识信息,可以通过相应的函数获得.// ...

  5. v9站点自定义变量

    打开 \phpcms\modules\admin\templates\site_edit.tpl.php 文件,找到最后一个 </fieldset> ,在他后面添加一下代码:<!-- ...

  6. jquery href属性和click事件冲突

    a标签的定义如下: <a href="javascript:void(0);">test</a> jquery中的click事件: $("a&qu ...

  7. YY老总李学凌给记者们的几句话

    从记者到总编,从狗狗.多玩到如今的 YY.100 教育,似乎李学凌在这么多年来一直没有放缓过脚步.作为记者转型的成功案例,李学凌总结记者生涯有几方面令其获益匪浅: 1.平常心.对待再高层次的人,也用一 ...

  8. Android activity之间的跳转和数据传递

    1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtr ...

  9. Oracle用imp和exp实现数据的导入和导出

    使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...

  10. Rancher快速入门

    https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/quick-start-guide/