-- 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]: *** [net.o] Error 127
make[2]: Leaving directory `/redis/redis-2.4.7/deps/hiredis'
make[1]: *** [dependencies] Error 2
make[1]: Leaving directory `/redis/redis-2.4.7/src'
make: *** [all] Error 2
第一个问题
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 打开另一个会话:
ast login: Tue Feb 19 22:49:49 2013 from 192.168.1.103
set key和get key都正确
redis搭建测试通过
参考文章:
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是一种即时快照的存储方式,定时对数据库进行snapshot
RDB优点:
1 RDB对于数据备份非常容易。你可以设置1天或者30天对数据进行一次备份,这样当发生数据灾难的时候能很容易恢复
2 由于RDB对数据备份时redis只做备份操作,所以备份最大化的使用了redis的性能,同时也导致了对于大的数据集,RDB备份快于AOF
RDB缺点:
1 如果你的需求只是要知道两个时间段中redis的变化,RDB是弱于AOF的
2 由于RDB经常使用子进程fork()进行数据备份,所以如果当数据比较大的时候,数据备份会比较耗时
AOF优点:
1 你必须有一个AOF的fsync的策略:
或者是不进行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的技术叫做pipelining(流水线)。这个技术早在几十年前就应用在了各种协议上(比如pop3),redis也很早使用了这个技术。
实验:
$ (echo -en "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379
当调用这个例子的时候:
server一次返回:
+PONG
+PONG
+PONG
而不是返回一次PONG,过了RTT时间再返回PONG,这个例子就说明了redis使用pipelining
注:nc命令说明请看:
http://www.cnblogs.com/faraway/archive/2008/08/30/1280070.html
---------------------------------
订阅
redis支持订阅(subscribe)
当一个client订阅一个或多个变量,其他客户端修改了变量并publish之后,这个客户端会收到消息
例子:
Client1:
SUBSCRIBE first second
Client2:
PUBLISH second Hello
client1显示:
message
second
Hello2
redis还支持模式订阅(psubscribe命令)
PSUBSCRIBE f*
PHP
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
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 |
搜索
我的标签
随笔分类
随笔档案
最新评论
- 1. Re:redis搭建实战记录
- lz 貌似e文不错,redis的文档官方没提供中文版的吧!
- 2. Re:MySQL体系结构
- 值得一看!
- 3. Re:MySQL体系结构
- 不错
- 4. Re:MySQL体系结构
- 一楼和俺是同姓
- 5. Re:MySQL体系结构
- 写的不错,收藏。
阅读排行榜
评论排行榜
---------------------------------
参考文档:
---------------------------------
作者:yjf512(轩脉刃)
出处:http://www.cnblogs.com/yjf512/
本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明