-- 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 是一種即時快照的存儲方式,定時對數據庫進行 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 也很早使用了這個技術。
?
實驗:
$ (echo -en "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379
當調用這個例子的時候:
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
Hello2
?
?
redis 還支持模式訂閱( psubscribe 命令)
PSUBSCRIBE f*
?
PHP
?
公告
姓名:葉劍峰
園名:軒脈刃
英文名:nick ye
?
?
?
開開心心做事
?
夫茍其挫而不退矣,則小逆之后,必有小順。大逆之后,必有大順。
?
?
?
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
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 |
搜索
我的標簽
隨筆分類
- C#語言技術(20) ? (rss)
- C++/算法(4) ? (rss)
- PHP(22) ? (rss)
- SharePoint(5) ? (rss)
- Visual Studio(4) ? (rss)
- 江湖風云(1) ? (rss)
隨筆檔案
最新評論
- 1. Re:redis搭建實戰記錄
- lz 貌似e文不錯,redis的文檔官方沒提供中文版的吧!
- --lhy
- 2. Re:MySQL體系結構
- 值得一看!
- --鄒雙平
- 3. Re:MySQL體系結構
- 不錯
- --遺忘海岸
- 4. Re:MySQL體系結構
- 一樓和俺是同姓
- --BillGan
- 5. Re:MySQL體系結構
- 寫的不錯,收藏。
- --甘南
閱讀排行榜
評論排行榜
---------------------------------
參考文檔:
---------------------------------
作者:yjf512(軒脈刃)
出處:http://www.cnblogs.com/yjf512/
本文版權歸yjf512和cnBlog共有,歡迎轉載,但未經作者同意必須保留此段聲明?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
