看到redis3版本已出最新 3.0.3 测试了一下它的集群功能。
1.安装:
$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz
$ tar xzf redis-3.0.3.tar.gz
$ cd redis-3.0.3
#支持包没有,问题真多,安装了gcc,tcl
[root@t1 redis-3.0.3]# ./runtest
You need tcl 8.5 or newer in order to run the Redis test
[root@t1 redis-3.0.3]# yum install tcl
已加载插件:fastestmirror, product-id, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
设置安装进程
Loading mirror speeds from cached hostfile
base
......
[root@t2 redis-3.0.3]# make
cd src && make all
make[1]: Entering directory `/opt/redis-3.0.3/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html
(cd ../deps && make distclean)
make[2]: Entering directory `/opt/redis-3.0.3/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: Leaving directory `/opt/redis-3.0.3/deps'
(rm -f .make-*)
echo STD=-std=c99 -pedantic >> .make-settings
echo WARN=-Wall -W >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=jemalloc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -Wall -W -O2 -g -ggdb -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings
echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua jemalloc)
make[2]: Entering directory `/opt/redis-3.0.3/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-ldflags)
(echo "" > .make-cflags)
MAKE hiredis
cd hiredis && make static
make[3]: Entering directory `/opt/redis-3.0.3/deps/hiredis'
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: Leaving directory `/opt/redis-3.0.3/deps/hiredis'
make[2]: *** [hiredis] 错误 2
make[2]: Leaving directory `/opt/redis-3.0.3/deps'
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] 错误 127
make[1]: Leaving directory `/opt/redis-3.0.3/src'
make: *** [all] 错误 2
[root@t2 redis-3.0.3]# yum install gcc
已加载插件:fastestmirror, product-id, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
设置安装进程
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: ftp.sjtu.edu.cn
* extras: mirrors.163.com
* updates: centos.ustc.edu.cn
$ make
出错:
[root@t1 redis-3.0.3]# make
cd src && make all
make[1]: Entering directory `/opt/redis-3.0.3/src'
CC adlist.o
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 错误 1
make[1]: Leaving directory `/opt/redis-3.0.3/src'
make: *** [all] 错误 2
解决:
To force compiling against libc malloc, use:
% make MALLOC=libc
(错误解决URL:http://www.phperz.com/article/14/1219/42002.html)
2.配置
2.1、新建6个instance,3个master,3个slave;
1. 192.168.2.188:6379
2. 192.168.2.188:6380
3. 192.168.2.132:6379
4. 192.168.2.132:6380
5. 192.168.2.134:6379
6. 192.168.2.134:6380
新建实例之前要改一下redis.conf的内容,先改端口号,再改下面的cluster配置项
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
################################ REDIS CLUSTER ###############################
#
# Normal Redis instances can't be part of a Redis Cluster;only nodes that are
# started as cluster nodes can. In order to start a Redisinstance as a
# cluster node enable the cluster support uncommenting thefollowing:
#
cluster-enabled yes
# Every cluster node has a cluster configuration file. Thisfile is not
# intended to be edited by hand. It is created and updated byRedis nodes.
# Every Redis Cluster node requires a different clusterconfiguration file.
# Make sure that instances running in the same system does nothave
# overlapping cluster configuration file names.
#
cluster-config-file nodes-6379.conf
# Cluster node timeout is the amount of seconds a node must beunreachable
# for it to be considered in failure state.
# Most other internal time limits are multiplicators of thenode timeout.
#
cluster-node-timeout 15
# In order to setup your cluster make sure to read thedocumentation
# available at http://redis.io web site.
#复制配置文件,并修改port: 6380, cluster-config-file nodes-6380.conf
cp redis.conf redis2.conf
启动6个实例:
[root@t1 redis-3.0.3]# src/redis-server redis.conf &
[root@t1 redis-3.0.3]# src/redis-server redis2.conf &
[root@t1 redis-3.0.3]# ps -ef|grep redis
root 3105 2024 0 14:36 pts/0 00:00:02 src/redis-server *:6379 [cluster]
root 3191 2024 0 15:04 pts/0 00:00:00 src/redis-server *:6380 [cluster]
root 3197 2024 0 15:04 pts/0 00:00:00 grep redis
[root@t2 redis-3.0.3]# src/redis-server redis.conf &
[root@t2 redis-3.0.3]# src/redis-server redis2.conf &
[root@t2 redis-3.0.3]# ps -ef|grep redis
root 26035 17602 0 15:05 pts/2 00:00:00 src/redis-server *:6379 [cluster]
root 26043 17602 0 15:05 pts/2 00:00:00 src/redis-server *:6380 [cluster]
root 26057 17602 0 15:06 pts/2 00:00:00 grep redis
[root@localhost redis-3.0.3]# src/redis-server redis.conf &
[root@localhost redis-3.0.3]# src/redis-server redis2.conf &
[root@localhost redis-3.0.3]# ps -ef|grep redis
root 5689 1249 0 15:08 pts/0 00:00:00 src/redis-server *:6379 [cluster]
root 5692 1249 0 15:08 pts/0 00:00:00 src/redis-server *:6380 [cluster]
root 5696 1249 0 15:08 pts/0 00:00:00 grep redis
2.2 建立集群:
2.2.1 安装ruby 及 rubygems,
[root@t1 redis-3.0.3]# yum install ruby
[root@t1 redis-3.0.3]# yum install rubygems
[root@t1 redis-3.0.3]# gem install redis #安装ruby 的redis 接口支持包
2.2.2 测试是否能连接上其它服务器的redis-server
[root@t1 redis-3.0.3]# src/redis-cli -h 192.168.2.134 -p 6379
Could not connect to Redis at 192.168.2.134:6379: No route to host
not connected> exit
2.2.3 关闭其它服务器中的防火墙
[root@t2 redis-3.0.3]# chkconfig iptables off
[root@t2 redis-3.0.3]# service iptables stop
iptables:清除防火墙规则: [确定]
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:正在卸载模块: [确定]
2.2.4 建立集群:
[root@t1 redis-3.0.3]# src/redis-trib.rb create --replicas 1 192.168.2.188:6379 192.168.2.188:6380 192.168.2.132:6379 192.168.2.132:6380 192.168.2.134:6379 192.168.2.134:6380
>>> Creating cluster
Connecting to node 192.168.2.188:6379: OK
Connecting to node 192.168.2.188:6380: OK
Connecting to node 192.168.2.132:6379: OK
Connecting to node 192.168.2.132:6380: OK
Connecting to node 192.168.2.134:6379: OK
Connecting to node 192.168.2.134:6380: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.2.134:6379
192.168.2.132:6379
192.168.2.188:6379
Adding replica 192.168.2.132:6380 to 192.168.2.134:6379
Adding replica 192.168.2.134:6380 to 192.168.2.132:6379
Adding replica 192.168.2.188:6380 to 192.168.2.188:6379
M: 811daf9b3f895bf891c65cee5b8e70a9f8fd4c8a 192.168.2.188:6379
slots:10923-16383 (5461 slots) master
S: 902fd7e670ece8f4b993b930e1619d3e5ee89b0f 192.168.2.188:6380
replicates 811daf9b3f895bf891c65cee5b8e70a9f8fd4c8a
M: cc6c9301a0fc8e97ce7c00bb13529552323f6f60 192.168.2.132:6379
slots:5461-10922 (5462 slots) master
S: b55836ddfeb279b4cab60faec8ec53acf0da075e 192.168.2.132:6380
replicates 9d296647ae6cac139a817d46ab3efef50290def8
M: 9d296647ae6cac139a817d46ab3efef50290def8 192.168.2.134:6379
slots:0-5460 (5461 slots) master
S: 91cab39311b0bd69ccf5de9608778d271064e087 192.168.2.134:6380
replicates cc6c9301a0fc8e97ce7c00bb13529552323f6f60
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
#查看 集群信息
[root@t1 redis-3.0.3]# src/redis-cli -p 6379
127.0.0.1:6379> 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:6
cluster_my_epoch:1
cluster_stats_messages_sent:1305
cluster_stats_messages_received:1305
127.0.0.1:6379>
127.0.0.1:6379> set hello tang
OK
127.0.0.1:6379> keys *
1) "hello"
127.0.0.1:6379> set user_id 1234
OK
127.0.0.1:6379> keys *
1) "user_id"
2) "hello"
127.0.0.1:6379> get user_id
"1234"
127.0.0.1:6379>
[root@t2 redis-3.0.3]# src/redis-cli -p 6380
127.0.0.1:6380> keys *
1) "user_id"
2) "hello"
127.0.0.1:6380> get user_id
(error) MOVED 3139 192.168.2.134:6379
127.0.0.1:6380> get hello
(error) MOVED 866 192.168.2.134:6379
127.0.0.1:6380> keys *
1) "user_id"
2) "hello"
127.0.0.1:6380> exit
#当使用参数 -c 登录后,会自动取到其它节点中的数据
[root@t2 redis-3.0.3]# src/redis-cli -c -p 6380
127.0.0.1:6380> get user_id
-> Redirected to slot [3139] located at 192.168.2.134:6379
"1234"
192.168.2.134:6379> get hello
"tang"
192.168.2.134:6379> keys *
1) "user_id"
2) "hello"
192.168.2.134:6379> get year
-> Redirected to slot [10071] located at 192.168.2.132:6379
"2015"
192.168.2.132:6379> get month
"08"
192.168.2.132:6379> get day
-> Redirected to slot [4110] located at 192.168.2.134:6379
(nil)
192.168.2.134:6379>
转:http://blog.csdn.net/miyatang/article/details/47257209
相关推荐
* Redis3.0.3 软件包 * gcc 和 tcl 软件包 安装步骤如下: 1. 安装 gcc 和 tcl 软件包: # yum install gcc tcl 2. 下载(或上传)Redis3 最新稳定版(当前最新版 redis-3.0.3.tar.gz) 3. 编译和安装 Redis: # ...
7. **复制配置文件**: 复制配置文件到 Redis 的 bin 目录,例如 `cd /usr/local/redis/bin/`,然后 `cp /usr/usr/redis-3.0.3/redis.cnf ./`。 8. **修改配置文件**: 使用 `vim redis.conf` 修改配置,将 `daemonize...
本文档将指导您如何安装高可用的 Redis 集群,使用 Redis 3.0.3 和 CentOS 6.6_x64。我们将从基本概念开始,逐步讲解集群的安装和配置过程。 一、Redis 集群简介 Redis 集群是一种高可用的解决方案,可以提供高...
Redis_INSTALL=/usr/local/redis-3.0.3' >> ~/.bashrcsource ~/.bashrcCentos 下echo 'export Redis_INSTALL=/usr/local/redis-3.0.3' >> ~/.bashrcsource ~/.bashrc④创建数据目录并设置权限mkdir /var/redischmod ...
#### 七、安装与配置 1. **安装依赖包**: ```bash yum install gcc tcl ``` 2. **下载Redis**: ```bash cd /usr/local/src wget http://download.redis.io/releases/redis-3.0.3.tar.gz tar xzvf redis-...
**一、安装与配置Redis** 1. 安装Redis服务器:在Linux上,可以通过包管理器(如`apt-get`或`yum`)来安装Redis。 2. 配置Redis:修改`/etc/redis/redis.conf`,确保`bind`设置允许所有IP访问(或指定服务器IP),并...
2. **编译与安装**:进入解压后的目录,执行编译和安装操作: ``` cd redis-3.0.3 make sudo make install ``` 3. **配置文件**:Redis的配置文件默认为`redis.conf`,在`conf`目录下,你可以根据需求进行配置...
本文详细介绍了在CentOS 6.6环境下安装配置Redis集群的过程,包括环境准备、编译安装、主从复制配置以及集群配置等关键步骤。通过这种方式,不仅能够提升Redis的服务可用性,还能够提高系统的扩展能力。需要注意的是...
首先,你需要确保系统中已经安装了必要的软件,包括Redis本身和Ruby环境,因为Redis集群的创建会用到Ruby的`redis-trib.rb`工具。在本例中,我们选择的是Redis 3.0.3版本,这个版本开始支持集群模式。 1. 下载Redis...
Zabbix服务配置是整个部署过程的核心环节,包括服务器端和代理端的安装与配置。 **8.1 安装Zabbix Server** - 下载Zabbix压缩包并解压。 - 编译安装Zabbix Server。 - 导入Zabbix初始数据库结构。 - 修改Zabbix配置...
2. **安装 Maven 3.0.3+**:除了安装 Maven 3.0.3 或更高版本外,还需要将 Maven 的路径添加到系统的 `PATH` 变量中。Maven 在此项目中主要用于构建和管理依赖关系。 #### 三、项目结构解析 Spring Side 项目的...
CockroachLabsCN介绍安装部署不保证 Windows 系统的兼容性线上跑的是 v4.4.0, 是 v3.0.5, 是 v3.0.3。1. 安装 `Node.js[必须]` `MongoDB[必须]` `Redis[必须]`2. 启动 MongoDB 和 Redis3. `$ make install` 安装 ...
<version>3.0.3 ``` 然后,在 application.properties 文件中添加 Jasypt 的配置: ```properties jasypt: encryptor: password: jasypt algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt....
阿里云java ...3.0.3+ 2.4.4 5.5 2.6.14 5.7 阿里云OSS 7 主机,端口配置src/main/resources/application.properties 特定环境配置src/main/portable/portable-xxx.xml 依赖 SpringSide4 git clone ...
9、借鉴Security,封装了Secure模块,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。 10、稳定生产了两年,经历了从Camden -> Hoxton的技术架构,也经历了从fat jar -> docker -> k8s + jenkins...
7、支持Redis/Memcached 8、支持Linux/Unix/Windows服务器,支持Apache/IIS/Nginx等 9、支持电脑PC端、手机端(微信端)、小程序 DSShop商城系统功能: 1、设置:帐号同步、上传设置、SEO设置、邮箱短信、支付方式、...