[转]Redis集群的配置

一:memcache 和 Redis 对比总结

[memecache 特点]

1:速度最快(没有自测,但网上有详细的测试用例)

2:支持水平扩展,可以任意添加节点

[redis 特点]

1:速度没有memcache快

2:支持M/S的主从备份

3:可以支持多数据库

4:操作指令很丰富

4:支持异步数据持久化(以文件保存)

总结:

1:如果是简单的数据缓存建议使用MEMCACHE。

2:如果要对单一操作的数据量非常的大则使用MEMCACHE

3: 如果想做性能很好的缓存集群可以用Redis(M/S读写分离,如weibo中的排行榜等)

4: 如果在高并发下又想保存数据则可以用Redis (如更新热门文章浏览次数,memcachedb也不错)

二:Redis 的详细安装,

将 redis 安装到 /usr/local/webserver/redis

1:从 http://redis.io/download 上下载安装包

wget http://redis.googlecode.com/files/redis-2.2.15.tar.gz

tar zxvf redis-2.2.15.tar.gz

cd redis-2.2.15

make

mkdir -p /usr/local/webserver/redis/conf

mkdir -p /usr/local/webserver/redis/run

mkdir -p /usr/local/webserver/redis/db

cp redis.conf /usr/local/webserver/redis/conf/

cd src

# 将 src 目录下所有可执行文件复制到安装目录

cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/webserver/redis/

2:修改配置文件中的如下选项

------- vi /usr/local/webserver/redis/conf/redis.conf --------

daemonize yes

pidfile /usr/local/webserver/redis/run/redis.pid

dir /usr/local/webserver/redis/db

--------------------------------------------------------------

3:创建服务脚本

------- vi /usr/local/webserver/redis/start.sh ---------

#!/bin/bash

/usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf

--------------------------------------------------------

------- vi /usr/local/webserver/redis/stop.sh ---------

#!/bin/bash

kill `cat /usr/local/webserver/redis/run/redis.pid`

--------------------------------------------------------

chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh

4:启动 redis 服务

/usr/local/webserver/redis/start.sh

验证证服务是否成功:

netstat -nlpt | grep 6379

5:启动客户端验证

/usr/local/webserver/redis/redis-cli

>set key1 val1

>get key1

三:Redis Master/Slave 主从集群配置

这里我们以本机配置 1台Master + 2台Slave 为例子,其中:

Master IP:127.0.0.1  PORT:6379

Slave1 IP:127.0.0.1  PORT:63791

Slave2 IP:127.0.0.1  PORT:63792

1:复制两个 Slave 目录,方便管理

cp -r /usr/local/webserver/redis /usr/local/webserver/redis-slave1

cp -r /usr/local/webserver/redis /usr/local/webserver/redis-slave2

2:修改 redis-slave1 的配置文件和服务脚本

-- vi /usr/local/webserver/redis-slave1/conf/redis.conf --

port 63791

pidfile /usr/local/webserver/redis-slave1/run/redis.pid

dir /usr/local/webserver/redis-slave1/db

slaveof 127.0.0.1 6379

----------------------------------------------------------

-- vi /usr/local/webserver/redis-slave1/start.sh --

#!/bin/bash

/usr/local/webserver/redis-slave1/redis-server /usr/local/webserver/redis-slave1/conf/redis.conf

---------------------------------------------------

------- vi /usr/local/webserver/redis-slave1/stop.sh ---------

#!/bin/bash

kill `cat /usr/local/webserver/redis-slave1/run/redis.pid`

--------------------------------------------------------

3:修改 redis-slave2 的配置文件和服务脚本

-- vi /usr/local/webserver/redis-slave2/conf/redis.conf --

port 63792

pidfile /usr/local/webserver/redis-slave2/run/redis.pid

dir /usr/local/webserver/redis-slave2/db

slaveof 127.0.0.1 6379

----------------------------------------------------------

-- vi /usr/local/webserver/redis-slave2/start.sh --

#!/bin/bash

/usr/local/webserver/redis-slave2/redis-server /usr/local/webserver/redis-slave2/conf/redis.conf

---------------------------------------------------

------- vi /usr/local/webserver/redis-slave2/stop.sh ---------

#!/bin/bash

kill `cat /usr/local/webserver/redis-slave2/run/redis.pid`

--------------------------------------------------------

4:启动 M/S 服务

/usr/local/webserver/redis/start.sh

/usr/local/webserver/redis-slave1/start.sh

/usr/local/webserver/redis-slave2/start.sh

验证服务是否正常: netstat -nlpt | grep redis-server 有3个端口存在证明成功了

0 0.0.0.0:6379

0 0.0.0.0:63791

0 0.0.0.0:63792

5:验证M/S服务是否生效

/usr/local/webserver/redis/redis-cli [默认连接端口:6379 的 Master服务]

>set key1 val1

>quit

/usr/local/webserver/redis/redis-cli -p 63791 [连接 Slave1 服务]

>get key1

"val1" (数据成功同步了)

/usr/local/webserver/redis/redis-cli -p 63792 [连接 Slave2 服务]

>get key1

"val1" (数据成功同步了)

四:安装 Redis PHP 扩展

Redis所有的客户端在 http://redis.io/clients [PHP选项卡] 基于性能选择安装 phpredis

在 https://github.com/nicolasff/phpredis/downloads 上下载源代码包到本地然后上传到服务器.

tar zxvf nicolasff-phpredis-2.1.3-167-ga5e53f1.tar.gz

cd nicolasff-phpredis-a5e53f1

phpize

./configure

make && make install

查看输出信息会告诉你 redis.so 的那个目录下,把它复制到PHP的扩展目录下

我的系统上是 /usr/lib/php5/extensions/

用 php --ini 找到 php.ini 的位置,加入以下行后重启WEB服务器

=========================

extension=redis.so

=========================

Redis集群的配置的更多相关文章

  1. redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用

    目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...

  2. Spring-Session实现Session共享Redis集群方式配置教程

    循序渐进,由易到难,这样才更有乐趣! 概述 本篇开始继续上一篇的内容基础上进行,本篇主要介绍Spring-Session实现配置使用Redis集群,会有两种配置方式,一种是Redis-Cluster, ...

  3. spring boot下JedisCluster方式连接Redis集群的配置

    最近在使用springboot做项目,使用redis做缓存.在外网开发的时候redis服务器没有使用集群配置,所有就是用了RedisTemplate的方式进行连接redis服务器.但是项目代码挪到内网 ...

  4. Redis集群模式配置

    redis集群部署安装: https://blog.csdn.net/huwh_/article/details/79242625 https://www.cnblogs.com/mafly/p/re ...

  5. SpringBoot系列教程之Redis集群环境配置

    之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和 ...

  6. redis集群环境配置

    为什么需要集群 redis是一个开源的 key->value 高速存储系统,但是由于redis单线程运行,在系统中,只能利用单核的性能 当redis的调用越来越频繁时,可能会出现redis过于繁 ...

  7. Redis集群部署一直卡在Waiting for the cluster to join ......(Redis集群总线配置)

    redis集群总线端口为redis客户端端口加上10000,比如说你的redis 6379端口为客户端通讯端口,那么16379端口为集群总线端口 我搭建的redis集群中端口号是从 7001 ~ 70 ...

  8. [转]Redis集群的配置

    一:memcache 和 Redis 对比总结 [memecache 特点] 1:速度最快(没有自测,但网上有详细的测试用例) 2:支持水平扩展,可以任意添加节点 [redis 特点] 1:速度没有m ...

  9. Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案

    以前有想过用 Memcache 实现M/S架构的负载均衡方案,直到听说了 Redis 后才发现它做得更好.发了几天时间研究了一下 Redis ,感觉真的很不错,特整理一下! 以下操作都是在 SUSE  ...

随机推荐

  1. hdu 4291 2012成都赛区网络赛 矩阵快速幂 ***

    分析:假设g(g(g(n)))=g(x),x可能非常大,但是由于mod 10^9+7,所以可以求出x的循环节 求出x的循环节后,假设g(g(g(n)))=g(x)=g(g(y)),即x=g(y),y也 ...

  2. [Linux] 解压tar.gz文件,解压部分文件

    遇到数据库无法查找问题原因,只能找日志,查找日志的时候发现老的日志都被压缩了,只能尝试解压了   数据量比较大,只能在生产解压了,再进行查找 文件名为*.tar.gz,自己博客以前记录过解压方法: h ...

  3. C#中的Infinity有个小坑

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天家里有事,上网也不方便,就没有推送文章.今天很累,也不长篇大论了.简单介绍一下最近遇到的 ...

  4. ARM寻址方式,王明学learn

    ARM寻址方式 所谓寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式. 一.立即数寻址 立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数.这个操 ...

  5. mysql 方法row_number()方法

    1.  SELECT  t.*,        @curRow := @curRow + 1 AS row_numberFROM    structure tJOIN    (SELECT @curR ...

  6. Mac系统修改Intellij Idea默认JDK版本

    Intellij IDEA 默认情况下,使用的jdk的版本是1.6,当第一次启动IDEA的时候,如果系统中未安装jdk,则系统会自动到苹果官网下载jdk安装文件.如果你的系统已经安装了jdk1.7或是 ...

  7. Android入门开发之SD卡读写操作(转)

    SD卡的读写是我们在开发android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式: 1. 获取SD卡的根目录 String  sdCardRoot = Environment.getE ...

  8. 智能车学习(十三)——角度控制

    一.手册代码以及图示 二.流程说明 1.角度计算函数说明 //===================================================================== ...

  9. supervisor(二)event

    supervisor的event机制其实,就是一个监控/通知的框架.抛开这个机制实现的过程来说的话,event其实就是一串数据,这串数据里面有head和body两部分.咱们先弄清楚event数据结构, ...

  10. centos7 卸载mysql

    [root@zyf ~]# rpm -qa|grep -i mysql mysql-community-libs--.el7.x86_64 mysql-community-server--.el7.x ...