redis 實戰系列(一)
最近新接手的專案,要把資料最終推到線上的redis叢集裡。正好趁著這次專案的機會,徹底梳理一下redis相關的東東。
個人觀點是:凡是與資料相關的專案,實踐性都特別強。對於這種特點的內容,我遵循的學習原則是先搞明白what,即搞清楚這東西到底是個什麼鬼,有什麼用。接下來就是how,即搞清楚這個東東怎麼用,怎麼最快速的搭建環境,並且讓程式碼run起來。最後一步則是why,在有一定實踐經驗的基礎上,來搞清楚這東西到底為什麼要這麼搞,跟其他同類產品相比有什麼優缺點,適用的場景等等。
1.what,redis到底是個什麼鬼
要搞清楚一個東西到底是什麼鬼,最簡單最方便也最可靠的方法自然就是google(這個必須要用谷歌爸爸)。都使用redis關鍵字進行搜素,對比一下谷歌爸爸與某搜尋引擎的結果:
谷歌爸爸搜尋結果:
第一條redis官網,第二條github官方地址,第三條redis維基百科中文版,第四條維基百科英文版,結果排序堪稱完美。。。基本通過這幾個頁面就能對redis有個清晰快速的瞭解。
這是某搜尋引擎的搜素結果:
第一條也是redis官網。至於後面的內容,也不能說太差。只是相比google爸爸的搜尋結果,好像還是感覺差那麼一個檔次。。。
看看維基百科上是怎麼介紹redis的:
Redis是一個開源、支援網路、基於記憶體、鍵值對儲存資料庫,使用ANSI C編寫。從 2015 年 6 月開始,Redis 的開發由Redis Labs贊助,在 2013 年 5 月至 2015 年 6 月期間,其開發由Pivotal贊助。在2013年5月之前,其開發由VMware贊助。根據月度排行網站DB-Engines.com的資料顯示,Redis是最流行的鍵值對儲存資料庫。
簡單總結起來一句話:redis是目前最流行的基於記憶體的kv對非關係型資料庫。
2.檢視redis叢集資訊
QA同學已經幫忙給分配了一個測試環境的redis叢集。關於redis叢集的搭建,後面會專門有文章介紹。咱們先檢視一下redis的資訊:
cd 到rediscluster目錄,然後執行./redis-cli info
/home/work/rediscluster$ ./redis-cli info
# Server
redis_version:3.0.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:70563032b83216cf
redis_mode: cluster
os:Linux 2.6.32-358.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:18697
run_id:921ef4b414662ab0767ffffdf31ec1f16dfb6168
tcp_port:6379
uptime_in_seconds:174297
uptime_in_days:2
hz:10
lru_clock:8258346
config_file:/home/work/rediscluster/6379/conf/./redis.conf
...
資訊太長,咱們只檢視一下server部分的資訊。很容易看出來redis的版本為3.0.7。
3.檢視redis例項
因為是redis叢集,所以叢集起的redis例項不止一個。檢視一下叢集中redis程序有多少:
ps -ef | grep redis
root 18697 1 0 Jul05 ? 00:04:30 ../bin/redis-server *:6379 [cluster]
root 18701 1 0 Jul05 ? 00:06:45 ../bin/redis-server *:6380 [cluster]
root 18705 1 0 Jul05 ? 00:06:19 ../bin/redis-server *:6381 [cluster]
root 18709 1 0 Jul05 ? 00:05:48 ../bin/redis-server *:6382 [cluster]
root 18714 1 0 Jul05 ? 00:06:15 ../bin/redis-server *:6383 [cluster]
root 18718 1 0 Jul05 ? 00:07:02 ../bin/redis-server *:6384 [cluster]
root 18722 1 0 Jul05 ? 00:05:10 ../bin/redis-server *:6385 [cluster]
tester 21770 21654 0 15:28 pts/1 00:00:00 grep --color redis
由此可見,整個叢集有7個redis例項,分別對應了6379-6385埠。