redis搭建实战记录
Redis is an open source, advanced key-value store . It is often referred to as a data structure server since keys can contain strings , hashes , lists , sets and sorted sets .
-- from http://redis.io/
redis 是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注。他的特点是支持各种数据结构,stirng,hashes, list,set,和sorted setsclient端对于不同数据结构是使用不同的命令
这里说一下redis的安装
虚拟机环境: centos
1 wget make 安装
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
注 : 这里记录一下我安装过程中出现的问题 :
make: Warning: File `Makefile' has modification time 5.4e+06 s in the future
cd src && make all
make[1]: Entering directory `/redis/redis-2.4.7/src'
make[1]: Warning: File `Makefile' has modification time 5.4e+06 s in the future
MAKE hiredis
make[2]: Entering directory `/redis/redis-2.4.7/deps/hiredis'
make[2]: Warning: File `Makefile' has modification time 5.4e+06 s in the future
cc -c -std=c99 -pedantic -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[2]: cc: Command not found
make[2]: Leaving directory `/redis/redis-2.4.7/deps/hiredis'
make[1]: Leaving directory `/redis/redis-2.4.7/src'
第一个问题
make: Warning: File `Makefile' has modification time 5.4e+06 s in the future
系统时间调整错了,调过来就好了
第二个问题:
make[2]: Entering directory `/redis/redis-2.4.7/deps/hiredis'
cc -c -std=c99 -pedantic -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[2]: cc: Command not found
没安装 gcc ,
yum install gcc-c++
第三个问题:
make 的时候显示
make[1]: Entering directory `/redis/redis-2.4.7/src'
which: no tclsh8.5 in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
You need 'tclsh8.5' in order to run the Redis test
没安装 tcl
按照官网 http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html 上的安装
安装完成之后, make 成功!
安装成功之后会在 src 文件夹内有redis-server和redis-cli两个命令
建议将其放到 bin 下
sudo cp redis-server /usr/local/bin/
sudo cp redis-cli /usr/local/bin/
好了,现在 redis 就安装成功了
2 测试redis安装情况
我只在一台虚拟机上安装了 redis ,所以这台虚拟机既是服务器,又是客户端
测试:
1 使用 secureRt 打开一个会话,redis-server,让其作为服务器运行
[19282] 19 Feb 23:52:57 - 1 clients connected (0 slaves), 726248 bytes in use
[19282] 19 Feb 23:53:02 - DB 0: 1 keys (0 volatile) in 4 slots HT.
[19282] 19 Feb 23:53:02 - 1 clients connected (0 slaves), 726248 bytes in use
[19282] 19 Feb 23:53:07 - DB 0: 1 keys (0 volatile) in 4 slots HT.
[19282] 19 Feb 23:53:07 - 1 clients connected (0 slaves), 726248 bytes in use
2 打开另一个会话:
set key 和 get key 都正确
redis 搭建测试通过
参考文章:
http://redis.io/
http://redis.io/topics/quickstart
http://hi.baidu.com/thinkinginlamp/blog/item/3358c93d174e35ce9f3d62bf.html
持久化
redis 支持 RDB 和 AOF 两种持久化方式
The RDB persistence performs point-in-time snapshots of your dataset at specified intervals.
RDB 是一种即时快照的存储方式,定时对数据库进行 snap shot
RDB 优点:
1 RDB 对于数据备份非常容易。你可以设置 1 天或者 30 天对数据进行一次备份,这样当发生数据灾难的时候能很容易恢复
2 由于 RDB 对数据备份时 redis 只做备份操作,所以备份最大化的使用了 redis 的性能,同时也导致了对于大的数据集, RDB 备份快于 AOF
RDB 缺点:
1 如果你的需求只是要知道两个时间段中 redis 的变化, RDB 是弱于 AOF 的
2 由于 RDB 经常使用子进程 fork() 进行数据备份,所以如果当数据比较大的时候,数据备份会比较耗时
AOF 优点:
1 你必须有一个 AOF 的 f sync 的策略:
或者是不进行 fsync , 或者每秒 fsync 一次,或者每次 query 查询的时候 fsync
2 AOF 只记录修改 log ,当存储的时候由于某种原因写 log 失误了,使用 redis -check-aof 能很好的修复
3 当 redis 数据太大的时候, AOF 可以很好被重写到新的 redis 上
AOF 缺点:
1 AOF 通常比 RDB 大
2 AOF 比 RDB 慢
--------------------------
流水线
redis 是客户端和服务器端的通信交互 TCP 协议
当客户端发送请求,服务器端接受请求并发送回复,客户端接收回复,这个过程叫做 RTT (Round Trip Time)
比如如果 RTT 时间是 250 微秒,既是服务器端每秒能处理 10 万个请求,那么,我们只能认为 redis 每秒处理 4 个请求
server 不需要等待 client 接收了消息之后再处理新 request 的技术叫做 pipe lining (流水线)。这个技术早在几十年前就应用在了各种协议上(比如 pop3 ), redis 也很早使用了这个技术。
实验:
当调用这个例子的时候:
server 一次返回:
+PONG
+PONG
+PONG
而不是返回一次 PONG ,过了 RTT 时间再返回 PONG ,这个例子就说明了 redis 使用 pipe lining
注: nc 命令说明请看:
http://www.cnblogs.com/faraway/archive/2008/08/30/1280070.html
---------------------------------
订阅
redis 支持订阅( sub scribe )
当一个 client 订阅一个或多个变量,其他客户端修改了变量并 publish 之后,这个客户端会收到消息
例子:
Client 1:
SUBSCRIBE first second
Client2:
PUBLISH second Hello
client1 显示:
message
second
redis 还支持模式订阅( psubscribe 命令)
PSUBSCRIBE f*
PHP
PHP,Linux学习
redis的那些事
posted @ 2012-02-21 18:32 轩脉刃 阅读(109) | 评论 (0) 编辑
redis搭建实战记录
posted @ 2012-02-20 00:11 轩脉刃 阅读(684) | 评论 (1) 编辑
open-flash-chart + PHP + jQuery实例
posted @ 2012-02-17 01:16 轩脉刃 阅读(947) | 评论 (0) 编辑
open-flash-chart 教程例子实现
posted @ 2012-02-14 18:38 轩脉刃 阅读(5) | 评论 (0) 编辑
MySQL体系结构
posted @ 2012-02-06 07:59 轩脉刃 阅读(1530) | 评论 (4) 编辑
PHP面试题集
posted @ 2012-02-03 01:10 轩脉刃 阅读(1049) | 评论 (1) 编辑
浏览器书签插件__51cto文章转帖到开心网
posted @ 2012-01-27 23:55 轩脉刃 阅读(18) | 评论 (0) 编辑
PHP写UltraEdit插件脚本
posted @ 2011-12-26 08:31 轩脉刃 阅读(873) | 评论 (0) 编辑
HTML5_树(HTML5 高级程序设计)
posted @ 2011-11-13 22:55 轩脉刃 阅读(86) | 评论 (0) 编辑
开放平台_XAuth
posted @ 2011-09-01 14:41 轩脉刃 阅读(218) | 评论 (0) 编辑
开放平台_OAuth2.0
posted @ 2011-08-31 19:44 轩脉刃 阅读(1931) | 评论 (1) 编辑
开放平台_OAuth1.0
posted @ 2011-08-30 13:35 轩脉刃 阅读(2229) | 评论 (8) 编辑
powershell 模拟IE行为
posted @ 2011-06-08 18:02 轩脉刃 阅读(902) | 评论 (1) 编辑
PHP中间件--ICE
posted @ 2011-06-07 18:37 轩脉刃 阅读(1867) | 评论 (3) 编辑
JS中的prototype
posted @ 2011-06-03 14:40 轩脉刃 阅读(1544) | 评论 (3) 编辑
使用ab进行页面的压力测试
posted @ 2011-05-24 17:00 轩脉刃 阅读(839) | 评论 (0) 编辑
Linux下MemCache的安装
posted @ 2011-05-01 10:00 轩脉刃 阅读(1385) | 评论 (2) 编辑
从javascript的两个例子谈开
posted @ 2011-04-19 15:50 轩脉刃 阅读(153) | 评论 (0) 编辑
PHP中的工厂方法模式
posted @ 2011-04-10 22:54 轩脉刃 阅读(115) | 评论 (0) 编辑
JQuery实现日期联动
posted @ 2011-02-23 19:15 轩脉刃 阅读(188) | 评论 (0) 编辑
安装EPP的调试Zend Debugger
posted @ 2010-11-27 23:56 轩脉刃 阅读(646) | 评论 (1) 编辑
PHP一周学习小结
posted @ 2010-11-26 18:15 轩脉刃 阅读(363) | 评论 (0) 编辑
公告
姓名:叶剑峰
园名:轩脉刃
英文名:nick ye
开开心心做事
夫苟其挫而不退矣,则小逆之后,必有小顺。大逆之后,必有大顺。
昵称: 轩脉刃
园龄: 1年8个月
粉丝: 22
关注: 2
+加关注
< 2012年2月 > 日 一 二 三 四 五 六 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 2 3 4 5 6 7 8 9 10
搜索
常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签
我的标签 php jquery open-flash-chart (1)
随笔分类 C#语言技术(20) (rss) C++/算法(4) (rss) PHP(22) (rss) SharePoint(5) (rss) Visual Studio(4) (rss) 江湖风云(1) (rss)
随笔档案 2012年2月 (6) 2012年1月 (2) 2011年12月 (1) 2011年11月 (1) 2011年9月 (4) 2011年8月 (2) 2011年6月 (3) 2011年5月 (3) 2011年4月 (2) 2011年2月 (1) 2010年11月 (6) 2010年10月 (9) 2010年9月 (2) 2010年8月 (1) 2010年7月 (2) 2010年6月 (20)
最新评论
1. Re:redis搭建实战记录 lz 貌似e文不错,redis的文档官方没提供中文版的吧! --lhy 2. Re:MySQL体系结构 值得一看! --邹双平 3. Re:MySQL体系结构 不错 --遗忘海岸 4. Re:MySQL体系结构 一楼和俺是同姓 --BillGan 5. Re:MySQL体系结构 写的不错,收藏。 --甘南
阅读排行榜
1. 编程珠玑--旋转算法(9086) 2. 编程珠玑--位图法排序(2597) 3. 开放平台_OAuth1.0(2229) 4. 开放平台_OAuth2.0(1931) 5. PHP中间件--ICE(1867)
评论排行榜
1. 编程珠玑--位图法排序(22) 2. 编程珠玑--旋转算法(16) 3. 开放平台_OAuth1.0(8) 4. 一个老工程师给年轻人的十大忠告【转帖+感想】(7) 5. .net中GC原理浅析(7)
推荐排行榜
1. 开放平台_OAuth1.0(8) 2. 编程珠玑--位图法排序(7) 3. 编程珠玑--粗略估算(6) 4. 编程珠玑--旋转算法(5) 5. JS中的prototype(5)
---------------------------------
参考文档:
http://redis.io/documentation
---------------------------------
作者:yjf512(轩脉刃)
出处:http://www.cnblogs.com/yjf512/
本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息