单点安装

  1. wget http://download.redis.io/releases/redis-4.0.2.tar.gz
  2. tar zxvf redis-4.0.1.tar.gz -C /usr/local
  3. cd /usr/local/redis-4.0.2
  4. make
  5. make test
  6. make PREFIX=/usr/local/redis install
  7. cd /usr/local/redis
  8. mkdir conf log data
  9. cd /usr/local/redis/conf
  10. cp /usr/local/redis-4.0.2/redis.conf .

修改内核参数:

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

修改配置文件

主要修改以下值

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

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

  1. [root@10-110-122-196 src]# cat /usr/local/redis-cluster-shijing2/redis/conf/7379.conf
  2. bind 0.0.0.0
  3. protected-mode yes
  4. port 7379
  5. requirepass bigdata1234@le.com
  6. masterauth bigdata1234@le.com
  7. maxmemory 4000000000
  8. tcp-backlog 511
  9. timeout 0
  10. tcp-keepalive 300
  11. daemonize yes
  12. supervised no
  13. pidfile "/var/run/redis_7379.pid"
  14. loglevel notice
  15. logfile "../log/redis_7379.log"
  16. databases 16
  17. always-show-logo yes
  18. save 900 1
  19. save 300 10
  20. save 60 10000
  21. stop-writes-on-bgsave-error yes
  22. rdbcompression yes
  23. rdbchecksum yes
  24. dbfilename "dump.rdb"
  25. dir "../data"
  26. slave-serve-stale-data yes
  27. slave-read-only yes
  28. repl-diskless-sync no
  29. repl-diskless-sync-delay 5
  30. repl-disable-tcp-nodelay no
  31. slave-priority 100
  32. lazyfree-lazy-eviction no
  33. lazyfree-lazy-expire no
  34. lazyfree-lazy-server-del no
  35. slave-lazy-flush no
  36. appendonly no
  37. appendfilename "appendonly.aof"
  38. appendfsync everysec
  39. no-appendfsync-on-rewrite no
  40. auto-aof-rewrite-percentage 100
  41. auto-aof-rewrite-min-size 64mb
  42. aof-load-truncated yes
  43. aof-use-rdb-preamble no
  44. lua-time-limit 5000
  45. slowlog-log-slower-than 10000
  46. slowlog-max-len 128
  47. latency-monitor-threshold 0
  48. notify-keyspace-events ""
  49. hash-max-ziplist-entries 512
  50. hash-max-ziplist-value 64
  51. list-max-ziplist-size -2
  52. list-compress-depth 0
  53. set-max-intset-entries 512
  54. zset-max-ziplist-entries 128
  55. zset-max-ziplist-value 64
  56. hll-sparse-max-bytes 3000
  57. activerehashing yes
  58. client-output-buffer-limit normal 0 0 0
  59. client-output-buffer-limit slave 256mb 64mb 60
  60. client-output-buffer-limit pubsub 32mb 8mb 60
  61. hz 10
  62. aof-rewrite-incremental-fsync yes
  63. cluster-enabled yes
  64. cluster-config-file "7379.conf"

cluster搭建

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

  1. [root@10-110-122-196 conf]# pwd
  2. /usr/local/redis-cluster-shijing2/redis/conf
  3. [root@10-110-122-196 conf]# ll
  4. total 28
  5. -rw-r--r-- 1 root root 1362 May 31 16:52 7379.conf
  6. -rw-r--r-- 1 root root 1362 May 31 16:52 7380.conf
  7. -rw-r--r-- 1 root root 1362 May 31 16:53 7381.conf
  8. -rw-r--r-- 1 root root 1362 May 31 16:53 7382.conf
  9. -rw-r--r-- 1 root root 1362 May 31 16:53 7383.conf
  10. -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环境安装

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

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

  1. gem install redis

启动各节点,初始化集群

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

  1. redis-trib.rb create --replicas 1 host_ip:prot1 host_ip:port2
  2. 例:./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
  3. 其中--replicas 1表示有一个slave,以上例子中共6个实例,表示33

执行到这里之后基本就完成了集群的搭建;可以通过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的值,以便密码永久保存

如下例

  1. requirepass bigdata1234@le.com
  2. masterauth bigdata1234@le.com

4.查看cluster状态

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

5.节点相互meet

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

redis的优化

  • 密码设置
  1. 10.110.122.196:7379> config set requirepass Bigdata4321@le.com
  • 最大内存设置,建议设定,否则会占用系统最大内存
  1. 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环境有特别要求

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

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

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

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

  1. [root@vm-10-124-64-251 src]# tail -2 /etc/profile
  2. export RUBY_HOME=/usr/local/ruby
  3. export PATH=$RUBY_HOME/bin:$PATH
  4. [root@vm-10-124-64-251 src]# /usr/bin/env ruby -v
  5. 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. hive中为分区表增加字段需要注意默认不会修改已有分区的字段,导致查询时新增字段为null

    若向hive表添加字段,通常会使用下面这种语句 alter table default.testparquet add columns(c8 string); 但是对于分区表来说, 1. 若新建的分区 ...

  2. Ubuntu用户权限管理(chown, chmod)

    改变文件所有权chown 例如 sudo chown username myfile myfile文件的所有权变为username. chown -R username /files/work 加入参 ...

  3. MySQL使用版本号实现乐观锁

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11608581.html 乐观锁适用于读多写少的应用场景  乐观锁Version图示 Project D ...

  4. sql server 2000安装程序配置服务器失败

    第一种方法 今天安装SQL Server 2000遇到了个很BT的问题,提示出下: 安装程序配置服务器失败.参考服务器错误日志和C:\Windows\sqlstp.log了解更多信息. 以前进安装目录 ...

  5. SEERC 2018 I - Inversion (Gym - 101964I) DP

    Gym - 101964I 题意 有一个数组\(p\),如果满足\(i<j,p_i>p_j\),则\(i,j\)之间就有一条边相连,问存在多少个集合满足集合内的元素互不相连,且集合外的元素 ...

  6. element table 通过selection-change选中的索引删除

    <el-table :row-class-name="tableRowClassName" @selection-change="handleSelectionCh ...

  7. HTML 3-列表、表单、语义化

    有序列表.无序列表.自定义列表在语义上的区别 1.有序列表ol>li:列表有顺序编号(默认列表前加1.,2.,3.,...编号),适用于有逻辑顺序的排列项目,而且次序不能乱.2.无序列表ul&g ...

  8. 2018-2019-2 20175223 实验四 《Android开发基础》实验报告

    目录 北京电子科技学院(BESTI)实验报告 实验名称:实验四 Android程序设计 实验内容.步骤与体会: 一.实验四 Android程序设计-1 二.实验四 Android程序设计-2 三.实验 ...

  9. python3反转列表的三种方式

    1.内建函数 reversed() li = [1,2,3,4,5,6] a = list(reversed(li)) print(a) 注意:reversed()函数返回的是一个迭代器,而不是一个L ...

  10. UVA12174_Shuffle

    Shuffle 大致题意: 你有一个随机播放的播放器,有s首歌,在这s首播放完之前不会重新打乱顺序,现在给出一段只含有1~s的n长度序列,现在问你下次随机排序发生的时间有多少种可能 其实就是问你这个播 ...