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

以下操作都是在 SUSE Linux 11 下安装了好了PHP为例子,如果安装过程中有提示缺少的包可以使用zypper search rpm-name 进行查询,然后用 zypper install rpm-name 安装

一: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 上下载安装包

1
2
3
4
5
6
7
8
9
10
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 目录下所有可执行文件复制到安装目录

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

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

1
2
3
4
5
------- 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:创建服务脚本

1
2
3
4
5
6
7
8
9
10
------- 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:启动客户端验证

1
2
3
/usr/local/webserver/redis/redis-cli
>set key1 val1
>get key1

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

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

从服务器redis文件储存在/etc/redis.conf

从服务器,配置一样,只不过 修改/etc/redis.conf 中

从服务器  slaveof 172.16.10.23(redis master IP) 6379(redis master 端口)

然后开启从服务器的redis服务。

目前环境是本地内网虚拟出来,为了达到主从效果,修改了从服务器的redis端口为12002(redis默认端口6379),正式环境上应设置正确IP及端口

示例:

 
简单测试通过,主服务器写入,从服务器读出
由于配置中有一条 从服务器 是只读的,所以从服务器 没法设置数据,只可以读取数据。

最新文章

  1. 设置DIV可编辑
  2. nginx正则表达式
  3. 启动Oracle
  4. php引入lucene方法
  5. 手把手教你Linux服务器集群部署.net网站 - 让MVC网站运行起来
  6. js 当前日期处理 获取
  7. mongodb c++ 驱动库编译
  8. java.util.Date和java.sql.Date的区别及应用
  9. 疯狂学习java web3(javaScript)
  10. Javascript高级程序设计读书笔记(第10章 DOM)
  11. python 执行shell命令
  12. 从ora10g 刷数据到 8I基本操作步骤
  13. 【NOI2014】魔法森林
  14. (转)JAVA HashSet 去除重复值原理
  15. SSM(Spring+springMVC+MyBatis)框架-springMVC实现图片上传
  16. Loj #6073.「2017 山东一轮集训 Day5」距离
  17. cuda培训素材
  18. php5.6 安装intl扩展
  19. PL/SQL Developer从11.0.6版本开始32/64为之区分
  20. [Web 前端] CSS篇之3. 如何保持浮层水平垂直居中

热门文章

  1. [Android] AudioTrack实例
  2. Android自定义控件 开源组件SlidingMenu的项目集成
  3. Merge Two Sorted Lists—LeetCode
  4. compile libvirt
  5. iOS键盘覆盖输入框的处理.doc
  6. js判断访问者是否来自移动端代码
  7. 配置本地yum源的方法
  8. 【网络流#9】POJ 2135 Farm Tour 最小费用流 - 《挑战程序设计竞赛》例题
  9. 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类
  10. bootsrtap (-)