redis环境搭建

因为工作环境中有redis,所以对redis进行了学习,当然首先就是从搭建环境开始,下面是我对于搭建redis环境的记录。

系统是SuSE 11 sp2,

软件环境如下所示:

linux-svnfile:/home/apps/redis # ls

redis-3.0.0.gem     ruby-1.9.2-p290.tar.gz  zlib-1.2.7.tar.gz

redis-3.0.0.tar.gz  rubygems-2.4.6.tgz

redis.conf          zlib-1.2.6.tar.gz

安装基础环境:

linux-svnfile:/home/apps/redis # tar -zxf zlib-1.2.6.tar.gz -C /usr/local/src

linux-svnfile:/usr/local/src/zlib-1.2.6 # ./configure --prefix=/usr/local/zlib

linux-svnfile:/usr/local/src/zlib-1.2.6 # make && make install

linux-svnfile:/home/apps/redis # tar -zxf ruby-1.9.2-p290.tar.gz -C /usr/local/src

linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # ./configure --prefix=/usr/local/ruby

linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # make && make install

linux-svnfile:/usr/local/ruby # ln -s /usr/local/ruby/bin/ruby /usr/local/bin

linux-svnfile:/home/apps/redis # tar xf rubygems-2.4.6.tgz -C /usr/local/src

linux-svnfile:/usr/local/src # mv rubygems-2.4.6 ../gem

linux-svnfile:/usr/local/gem # ruby setup.rb

linux-svnfile:/usr/local/gem # cp bin/gem /usr/local/bin/

linux-svnfile:/home/apps/redis # gem install -l redis-3.0.0.gem

Successfully installed redis-3.0.0

Installing ri documentation for redis-3.0.0

Done installing documentation for redis after 0 seconds

1 gem installed

linux-svnfile:/home/apps/redis # tar -zxf redis-3.0.0.tar.gz -C /usr/local/src

linux-svnfile:/usr/local/src # mv redis-3.0.0 ../redis

linux-svnfile:/usr/local/redis # make

至此基础环境搭建完成

下面进行集群的搭建

linux-svnfile:/usr/local/redis # cp src/redis-server /usr/local/bin/

linux-svnfile:/usr/local/redis # cp src/redis-cli /usr/local/bin/

linux-svnfile:/usr/local/redis # cp src/redis-trib.rb /usr/local/bin

linux-svnfile:/usr/local/redis # mkdir -p /usr/local/cluster/{7000..7005}

linux-svnfile:/usr/local/redis # vi redis.conf

daemonize yes

port 7000

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7000

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7001

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7002

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7003

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7004

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7005

这里需要注意的是文件名对应文件里端口的配置,例如7001文件下的port参数需要改为7001,其他一样做修改。

linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf

linux-svnfile:/usr/local/redis # ps -ef | grep redis

root     15590     1  0 18:52 ?        00:00:00 redis-server *:7000 [cluster]

linux-svnfile:/usr/local/redis # 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

Connecting to node 127.0.0.1:7000: OK

Connecting to node 127.0.0.1:7001: [ERR] Sorry, can‘t connect to node 127.0.0.1:7001

You have new mail in /var/mail/root

linux-svnfile:/usr/local/cluster/7000 # redis-server redis.conf

linux-svnfile:/usr/local/cluster/7000 # cd ../7001

linux-svnfile:/usr/local/cluster/7001 # redis-server redis.conf

linux-svnfile:/usr/local/cluster/7001 # cd ../7002

linux-svnfile:/usr/local/cluster/7002 # redis-server redis.conf

linux-svnfile:/usr/local/cluster/7002 # cd ../7003

linux-svnfile:/usr/local/cluster/7003 # redis-server redis.conf

linux-svnfile:/usr/local/cluster/7003 # cd ../7004

linux-svnfile:/usr/local/cluster/7004 # redis-server redis.conf

linux-svnfile:/usr/local/cluster/7004 # cd ../7005

linux-svnfile:/usr/local/cluster/7005 # redis-server redis.conf

linux-svnfile:/usr/local/cluster/7005 # ps -ef | grep redis

root     17575     1  0 20:05 ?        00:00:00 redis-server *:7000 [cluster]

root     17590     1  0 20:06 ?        00:00:00 redis-server *:7001 [cluster]

root     17604     1  0 20:06 ?        00:00:00 redis-server *:7002 [cluster]

root     17612     1  0 20:06 ?        00:00:00 redis-server *:7003 [cluster]

root     17616     1  0 20:06 ?        00:00:00 redis-server *:7004 [cluster]

root     17624     1  0 20:06 ?        00:00:00 redis-server *:7005 [cluster]

像是上面在启动服务时需要注意切换到相应的配置文件的目录下,不然相应端口的服务无法启动,例如我之前在/usr/local/redis目录下启动后只有7000对应的服务启动了。

linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf

linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf

linux-svnfile:/usr/local/redis # ps -ef | grep redis

root     15144 19064  0 18:37 pts/0    00:00:00 vi redis.conf

root     15590     1  0 18:52 ?        00:00:00 redis-server *:7000 [cluster]

root     15616 19443  0 18:52 pts/1    00:00:00 grep redis

linux-svnfile:/usr/local/cluster #redis-cli -p 7000

127.0.0.1:7000>

删除slave节点

删除master节点

linux-svnfile:/usr/local/redis # redis-trib.rb reshard 127.0.0.1:7001

How many slots do you want to move (from 1 to 16384)? 5461

What is the receiving node ID? 42929649e533ec8aad7cbb81f204f04c849d4bff

Please enter all the source node IDs.

Type ‘all‘ to use all the nodes as source nodes for the hash slots.

Type ‘done‘ once you entered all the source nodes IDs.

Source node #1: 6fe9561e605b7ee85e67a2557f7fb641f482afb4

Source node #2:done

#Do you want to proceed with the proposed reshard plan (yes/no)? yes

说明:

5461表示要删除master所有的slot数量

What is the receiving node ID是指将7000的slot迁移的节点7001的node-id

Source node #1是指要删除的master的node-id

下面可以看到7000的slot为0,而7001多了4561

在删除master节点出现如下面所示的错误,是因为删除master节点之前没有删除master节点的slave节点。

上面是在单台机器上做的集群,下面展示两台机器上做集群,其实也很简单。

参考之前的环境编译源码到另一台机器

在两台机器上编辑配置文件

/usr/local/redis # vi redis.conf

daemonize yes

port 7000

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

cluster-config-file nodes-7001.conf

分别创建目录和文件

linux-svnfile:/usr/local/redis # mkdir -p/usr/local/cluster/{7001..7003}

localhost:/usr/local/redis # mkdir -p/usr/local/cluster/{8001..8003}

linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7001

linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7002

linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7003

localhost:/usr/local/redis # cp redis.conf../cluster/8001

localhost:/usr/local/redis # cp redis.conf../cluster/8002

localhost:/usr/local/redis # cp redis.conf../cluster/8003

修改对应目录的配置文件其中port 和cluster-config-file分别对应各自的目录名,可使用sed命令做修改

sed -i "s/7001/7002/g"

启动服务

时间: 2024-12-12 15:48:38

redis环境搭建的相关文章

Redis环境搭建、创建服务、搭建主从复制-Windows版本

一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境就搭建完毕. 二.图形化界面 三.搭建主从复制 1.先给Master创建一个服务.解压的路径:F:\linux\redis\redis6379 cd f: cd \linux\redis\redis6379 //为master创建一个服务,每次机器启动自动启动. redis-server --ser

一.redis 环境搭建

1.简介       redis是一个开源的key-value数据库.它又经常被认为是一个数据结构服务器.因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型.当然这些类型的元素也都是string类型.也就是说list,set这些集合类型也只能包含string 类型.你可以在这些类型上做很多原子性的操作.比如对一个字符value追加字符串(APPEND命令).加加或者减减一个数字字符串(INCR命令,当 然是按整数处理的).可以对list类

redis - 环境搭建(转)

一:简介(来自百科) redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写

django+celery+redis环境搭建

初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar.gz,cd httpd-2.0.63, ./configure --prefix=/usr/local/apache --enable-mods=all --enable-cache --enable-mem-cache --enable-file-cache --enable-rewrite(这一

redis 环境搭建

windows 下搭建 redis 环境 写在前面的话: Redis 没有官方的 Windows 版本,但是微软开源技术团队(Microsoft Open Tech group)开发和维护着这个 Win64 的版本. 一.下载 Redis (下载地址:https://github.com/MicrosoftArchive/redis/releases) 二.解压安装包 解压安装包,更名为redis,放到 D:\Programe Files\redis (这个路径不是固定的,随意) 三.启动 re

redis环境搭建笔记

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Arial; color: #362d2b; min-height: 16.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Arial; color: #362d2b } p.p4 { marg

【环境配置】Centos7 nginx+php+redis环境搭建

1.nginx install: 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 建立nginx的yum仓库 # rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm 下载并安装nginx # yum install nginx 启动nginx服

redis环境搭建(Linux)、Jredis

简介 1. NoSql是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准,ACID属性,表结构等等,这类数据库主要有一下特点:非关系型的,分布式的,开源的,水平可扩展的. 2. NoSql的特点: a) 处理超大量的数据. b) 运行在便宜的pc服务器集群上 c) 击碎了性能瓶颈. 3. NoSql适用场景 a) 对数据高并发读写.(咱们在对mysql进行上万次的写操作,那么咱们的硬盘io就可能无法承受了) b) 对海量数据的高效

windows redis 环境搭建

1.文件准备 2.启动Redis服务 3.在当前目录下重新开启一个redis窗口.