【Redis】一 CentOS 6.7 redis3 集群安装
来源:互联网 发布:淘宝网首页女装夏装 编辑:程序博客网 时间:2024/06/07 22:40
【Redis】一 CentOS 6.7 redis3 集群安装
使用centos 6.7 live CD版本
redis官方文档
http://redis.io/download#installation
http://www.redis.io/topics/data-types-intro
Installation
Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz$ tar xzf redis-3.0.7.tar.gz$ cd redis-3.0.7$ make
错误 1
[root@localhost redis-3.0.7]# makecd src && make allmake[1]: Entering directory `/home/mark/redis-3.0.7/src' CC adlist.o/bin/sh: cc: command not foundmake[1]: *** [adlist.o] Error 127make[1]: Leaving directory `/home/mark/redis-3.0.7/src'make: *** [all] Error 2
原因分析
这是由于系统没有安装gcc环境,
解决办法
yum install gcc
错误 2
cd src && make allmake[1]: Entering directory `/home/mark/redis-3.0.7/src' CC adlist.oIn file included from adlist.c:34:zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directoryzmalloc.h:55:2: error: #error "Newer version of jemalloc required"make[1]: *** [adlist.o] Error 1make[1]: Leaving directory `/home/mark/redis-3.0.7/src'make: *** [all] Error 2
原因分析
在README 有这个一段话。
Allocator Selecting a non-default memory allocator when building Redis is done by setting the `MALLOC` environment variable. Redis is compiled and linked against libc malloc by default, with the exception of jemalloc being the default on Linux systems. This default was picked because jemalloc has proven to have fewer fragmentation problems than libc malloc. To force compiling against libc malloc, use: % make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc
说关于分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。
解决办法
make MALLOC=libc
自此编译完成
:)
配置redis
cd $REDIS_HOME #进入redis主目录mkdir confcd confcp ../redis.conf redis6379.conf #默认的端口vim redis6379.conf修改:daemonize no #默认值no,该参数用于定制redis服务是否以守护模式运行。port 6379 #默认6379 , 如果你的机器有冲突 , 修改为其他端口如果不打算使用事务、管线等一堆复杂功能,仅仅把redis当成cache server使用,可以在配置文件中,找到maxmemory、maxmemory-policy这二项,参考下面修改maxmemory 4096mbmaxmemory-policy allkeys-lru即:最大允许使用4G内存,所有key全都按LRU(近期最少使用)算法淘汰,这种情况下,不用设置过期时间,只要内存使用达到上限,不怎么使用的key自然被干掉。然后保存退出
启动redis
使用自定义配置启动
cd $REDIS_HOME/src./redis-server ../conf/redis6379.conf
停止redis
~/software/mac/work/redis/src$ ./redis-cli 127.0.0.1:6379> shutdown not connected>
测试
添加
cd $REDIS_HOME/src[mark@localhost src]$ ./redis-cli -p 6379 set test 'Hello Redis'OK[mark@localhost src]$ 即:指定端口6379,连接到本机redis,同时设置一个key为test,value为'Hello Redis'的缓存项(注:如果连接远程的redis服务器,可以用类似./redis-cli -h 192.168.1.190 -p 6379 get a)
读取
[mark@localhost src]$ ./redis-cli -p 6379 get test "Hello Redis"[mark@localhost src]$
删除
[mark@localhost src]$ ./redis-cli -p 6379 del test (integer) 1[mark@localhost src]$ ./redis-cli -p 6379 get test (nil)[mark@localhost src]$
小技巧
redis没有提供批量删除的方法,可以用下面的技巧批量删除 ./redis-cli -p 6379 KEYS "*" | xargs ./redis-cli -p 6379 DEL
性能测试
./redis-benchmark -p 6379
命令简要说明
~/software/mac/work/redis/src$ ls -l | grep x-rwxr-xr-x@ 1 mark staff 566 Jan 25 22:57 mkreleasehdr.sh-rwxr-xr-x 1 mark staff 90876 Apr 24 11:36 redis-benchmark-rwxr-xr-x 1 mark staff 14696 Apr 24 11:36 redis-check-aof aof文件修复-rwxr-xr-x 1 mark staff 30060 Apr 24 11:36 redis-check-dump-rwxr-xr-x 1 mark staff 147864 Apr 24 11:36 redis-cli-rwxr-xr-x 1 mark staff 908120 Apr 24 11:36 redis-sentinel-rwxr-xr-x 1 mark staff 908120 Apr 24 11:36 redis-server-rwxr-xr-x@ 1 mark staff 60527 Jan 25 22:57 redis-trib.rb-rw-r--r--@ 1 mark staff 2201 Jan 25 22:57 solarisfixes.h~/software/mac/work/redis/src$
集群
用端口模拟集群
mkdir redis-server/cd redis-servermkdir 7000 7001 7002 7003 7004 7005
节点目录中建立配置文件
vim 7000.conf
内容如下 , 注意 7001 7002 7003 … 中的端口与目录位置
port 7000daemonize nocluster-enabled yescluster-config-file /Users/你的户名/software/mac/work/redis-server/7000/node.confcluster-node-timeout 5000appendonly yes
复制 redis/src/redis-server 文件到各个节点目录
cp redis/src/redis-server redis-server/7000/ redis-server/7001 redis-server/7002 redis-server/7003 redis-server/7004 redis-server/7005
启动集群脚本
vim start.sh#!/bin/sh/Users/你的路径/redis-server/7000/redis-server /Users/你的路径/redis-server/7000/7000.conf &/Users/你的路径/redis-server/7001/redis-server /Users/你的路径/redis-server/7001/7001.conf &/Users/你的路径/redis-server/7002/redis-server /Users/你的路径/redis-server/7002/7002.conf &/Users/你的路径/redis-server/7003/redis-server /Users/你的路径/redis-server/7003/7003.conf &/Users/你的路径/redis-server/7004/redis-server /Users/你的路径/redis-server/7004/7004.conf &/Users/你的路径/redis-server/7005/redis-server /Users/你的路径/redis-server/7005/7005.conf chmod +x start.shsh start.sh
启动后
ps -ef|grep redis 501 32749 30773 0 10:53AM ttys001 0:00.00 grep --color=always redis 501 32740 32739 0 10:53AM ttys002 0:00.02 /Users/Mark/software/mac/work/redis-server/7000/redis-server *:7000 [cluster] 501 32741 32739 0 10:53AM ttys002 0:00.02 /Users/Mark/software/mac/work/redis-server/7001/redis-server *:7001 [cluster] 501 32742 32739 0 10:53AM ttys002 0:00.02 /Users/Mark/software/mac/work/redis-server/7002/redis-server *:7002 [cluster] 501 32743 32739 0 10:53AM ttys002 0:00.02 /Users/Mark/software/mac/work/redis-server/7003/redis-server *:7003 [cluster] 501 32744 32739 0 10:53AM ttys002 0:00.02 /Users/Mark/software/mac/work/redis-server/7004/redis-server *:7004 [cluster] 501 32745 32739 0 10:53AM ttys002 0:00.02 /Users/Mark/software/mac/work/redis-server/7005/redis-server *:7005 [cluster]
建立集群
先安装 ruby 和redis-gem
sudo gem install redis
src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005>>> Creating cluster>>> Performing hash slots allocation on 6 nodes...Using 3 masters:127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002Adding replica 127.0.0.1:7003 to 127.0.0.1:7000Adding replica 127.0.0.1:7004 to 127.0.0.1:7001Adding replica 127.0.0.1:7005 to 127.0.0.1:7002M: 438a08e5f20d99e776272913fa7f640ac35f9e12 127.0.0.1:7000 slots:0-5460 (5461 slots) masterM: 47625f7232181708332c07c8776d57f1cb6dc25f 127.0.0.1:7001 slots:5461-10922 (5462 slots) masterM: 036e546dbd7c7d5cb6703bd256b983adf0a82115 127.0.0.1:7002 slots:10923-16383 (5461 slots) masterS: ea24ac8be5071e0c444f5798390701e26c28e496 127.0.0.1:7003 replicates 438a08e5f20d99e776272913fa7f640ac35f9e12S: d1e27b5d87aca46cd7065e4fc38446a033d65f37 127.0.0.1:7004 replicates 47625f7232181708332c07c8776d57f1cb6dc25fS: 546fb1605a81baddb49181f66f64993f7a4c47e5 127.0.0.1:7005 replicates 036e546dbd7c7d5cb6703bd256b983adf0a82115Can I set the above configuration? (type 'yes' to accept): yes>>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join...>>> Performing Cluster Check (using node 127.0.0.1:7000)M: 438a08e5f20d99e776272913fa7f640ac35f9e12 127.0.0.1:7000 slots:0-5460 (5461 slots) master 1 additional replica(s)S: d1e27b5d87aca46cd7065e4fc38446a033d65f37 127.0.0.1:7004 slots: (0 slots) slave replicates 47625f7232181708332c07c8776d57f1cb6dc25fM: 47625f7232181708332c07c8776d57f1cb6dc25f 127.0.0.1:7001 slots:5461-10922 (5462 slots) master 1 additional replica(s)S: 546fb1605a81baddb49181f66f64993f7a4c47e5 127.0.0.1:7005 slots: (0 slots) slave replicates 036e546dbd7c7d5cb6703bd256b983adf0a82115S: ea24ac8be5071e0c444f5798390701e26c28e496 127.0.0.1:7003 slots: (0 slots) slave replicates 438a08e5f20d99e776272913fa7f640ac35f9e12M: 036e546dbd7c7d5cb6703bd256b983adf0a82115 127.0.0.1:7002 slots:10923-16383 (5461 slots) master 1 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.
测试集群
src/redis-cli -c -p 7000127.0.0.1:7000> set key1 value1 -> Redirected to slot [9189] located at 127.0.0.1:7001OK127.0.0.1:7001> get key1"value1"127.0.0.1:7001>
切换7005 端口实验
src/redis-cli -c -p 7005127.0.0.1:7005> get key1-> Redirected to slot [9189] located at 127.0.0.1:7001"value1"127.0.0.1:7001> 127.0.0.1:7001> cluster nodes546fb1605a81baddb49181f66f64993f7a4c47e5 127.0.0.1:7005 slave 036e546dbd7c7d5cb6703bd256b983adf0a82115 0 1479525679541 6 connectedea24ac8be5071e0c444f5798390701e26c28e496 127.0.0.1:7003 slave 438a08e5f20d99e776272913fa7f640ac35f9e12 0 1479525679026 4 connected036e546dbd7c7d5cb6703bd256b983adf0a82115 127.0.0.1:7002 master - 0 1479525680056 3 connected 10923-16383d1e27b5d87aca46cd7065e4fc38446a033d65f37 127.0.0.1:7004 slave 47625f7232181708332c07c8776d57f1cb6dc25f 0 1479525679333 5 connected47625f7232181708332c07c8776d57f1cb6dc25f 127.0.0.1:7001 myself,master - 0 0 2 connected 5461-10922438a08e5f20d99e776272913fa7f640ac35f9e12 127.0.0.1:7000 master - 0 1479525678520 1 connected 0-5460
测试成功
0 0
- 【Redis】一 CentOS 6.7 redis3 集群安装
- centos 安装 redis3.0.0 集群
- centos安装redis3.0.0集群
- centos 安装 redis3.0.0 集群
- centos 安装 redis3.0.0 集群
- centos 安装 redis3.0.0 集群
- CentOS下安装Redis3集群
- redis学习笔记(一)redis3.2.5集群安装与测试
- Redis 缓存集群 (一)Redis3.0.5 集群搭建
- centOs 安装redis,集群
- centos安装redis集群
- CentOS安装redis集群
- 【redis】一、redis3.2.6安装介绍
- 【redis】CentOS 7 上安装 redis3.2.3安装与配置
- linux redis3集群安装详细步骤与测试 redis cluster
- Redis集群安装(Redis3.0.3 + CentOS6.6_x64)
- Redis(一)Centos环境下集群安装配置
- redis3.0.6集群安装
- 复习继承和接口、抽象类
- C/C++学习笔记(2)--函数模板template<typename T>,类模板详解(1)
- USB识别与传输
- 找倍数(优先队列解法)
- android 小练习(一) ---仿微信UI主界面
- 【Redis】一 CentOS 6.7 redis3 集群安装
- 逻辑回归的向量化实现样例
- 学习翻译中英文词典工具
- 获取桌面壁纸作为App背景
- java入门:doc命令运行java文件
- Java内部类总结
- HDU 4500 小Q系列故事——屌丝的逆袭(模拟枚举排序)
- 机房水题欢乐赛 2016-04-21 上午 图论
- USB识别与传输