Redis初探

post200發表於2021-09-09

   大概在2010年的時候,有一次和一個同事聊天,那個時候知道了Redis,對於技術的追隨至今,還沒有下載一個Redis版本玩玩,

  只有1萬多行程式碼,以效能驚人著稱。新浪微博架構師楊衛華(我一翻微信,原來就是Tim Yang)曾說過:“國內前十大網站的子產品估計用1臺Redis就可以滿足儲存及Cache的需求”

  從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。Redis之父到哪裡,哪裡就有了新的標籤。

  下面就是Redis之父,義大利程式設計師Salvatore Sanfilippo

Redis初探

  我所在的DBAplus社群也策劃了週期性的技術發展newsletter,裡面有一些資訊是我負責收集的,我也和行業裡的各路大拿有過簡單的溝通,在Redis方面也能夠得到第一手的資訊。

 Redis的官方是https://redis.io/,國內也有Redis使用者組和相關的中文站點,也要感謝這些為社群貢默默貢獻的一些人,有了這個圈子,技術人才不會更加孤單。
  Reids目前的最新版本是4.0.1,我從官方下載了之後,發現壓縮包竟然只有1.6M,解壓後大概就是8.4M左右,這個量級就是很多關係型資料庫補丁的大小吧。所以勾起了我的興趣。深入的談不上,我局從下載安裝部署開始吧。

  從README文件可以看到,官方提供了以下幾個很實用的連結。

  Redis資料型別介紹:

 http://redis.io/topics/data-types-intro

  Redis命令列:

 http://redis.io/commands

 Redis官方文件:

  http://redis.io/documentation


# rpm -qa|grep gcc
libgcc-4.4.7-4.el6.x86_64
gcc-4.4.7-4.el6.x86_64

安裝部署非常簡單,就是一個make命令,當然如果要企業級定製還是有一些需要注意的引數。

 編譯之後得到的Redis目錄大概是73M

[root@oel1 redis-4.0.1]# du -sh .
73M

 這個目錄下有個檔案很重要,那就是redis的配置檔案redis.conf 

啟動的時候,如果不宣告,預設就是在這個路徑下使用這個預設的redis.conf檔案。


啟動Redis

 ./redis-server &

預設埠是6379


關閉Redis

# ./src/redis-cli shutdown


進入命令列模式:

[root@oel1 src]# ./redis-cli
127.0.0.1:6379> help
redis-cli 4.0.1

...

因為Reids是儲存鍵值,我們簡單測試一下,讓我有些驚喜的是,竟然還有命令提示功能,會自動提示你命令的情況。

127.0.0.1:6379> set name jeanron
OK

Redis初探得到剛初始化後的name

127.0.0.1:6379> get name
"jeanron"

Redis支援的資料型別比較豐富,支援多種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合),HyperLogLogs(一種基於概率的資料結構,用於統計集合中不同元素的個數)

比如List,使用rpush,rrange,lrange,lpush來操作  

可以單個推入元素

127.0.0.1:6379> rpush mylist a
(integer) 1
127.0.0.1:6379> rpush mylist b
(integer) 2

列舉list裡的元素

127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"

再補充一部分元素到list裡面

127.0.0.1:6379> rpush mylist 1 2 3
(integer) 5
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "1"
4) "2"
5) "3"

還可以有佇列資料結構的pop操作,比如pop末尾的元素

127.0.0.1:6379> rpop mylist
"3"
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "1"
4) "2"

檢視list的長度。

127.0.0.1:6379> llen mylist
(integer) 4

   如果對應的是一些基本的資料型別,還有一些補充的操作可用,比如像序列一樣自增。

127.0.0.1:6379> set counter 100
OK
127.0.0.1:6379> incr counter
(integer) 101
127.0.0.1:6379> incr counter
(integer) 102
127.0.0.1:6379> incrby counter 100
(integer) 202


我們也可以管理這些鍵值對,比如判斷是否存在,如果存在留刪除。

127.0.0.1:6379> exists counter
(integer) 1
127.0.0.1:6379> del counter
(integer) 1
127.0.0.1:6379> exists counter
(integer) 0

如果想檢視整個Redis的狀態資訊,可以使用命令info,輸出會分為幾個維度來展現這些資訊。

127.0.0.1:6379> info
# Server
redis_version:4.0.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f9229e185138419b
redis_mode:standalone
os:Linux 3.8.13-16.2.1.el6uek.x86_64 x86_64

當然上面的操作只是Redis中九牛一毛的操作,還是很多的內容自己要細化學習。



最後需要說明的是,今天是抗日戰爭勝利紀念日,為先烈和英雄致敬。

Redis初探




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2144452/,如需轉載,請註明出處,否則將追究法律責任。