Redis初探
大概在2010年的時候,有一次和一個同事聊天,那個時候知道了Redis,對於技術的追隨至今,還沒有下載一個Redis版本玩玩,
只有1萬多行程式碼,以效能驚人著稱。新浪微博架構師楊衛華(我一翻微信,原來就是Tim Yang)曾說過:“國內前十大網站的子產品估計用1臺Redis就可以滿足儲存及Cache的需求”
從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。Redis之父到哪裡,哪裡就有了新的標籤。
下面就是Redis之父,義大利程式設計師Salvatore Sanfilippo
我所在的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命令列:
Redis官方文件:
# 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
得到剛初始化後的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中九牛一毛的操作,還是很多的內容自己要細化學習。
最後需要說明的是,今天是抗日戰爭勝利紀念日,為先烈和英雄致敬。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2144452/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis之初探Redis
- 初探 Redis 客戶端 Lettuce:真香!Redis客戶端
- redis效能監控工具redis-stat安裝初探Redis
- 初探Redis-基礎型別ListRedis型別
- 初探Redis-基礎型別HashRedis型別
- redis原始碼學習之工作流程初探Redis原始碼
- redis資料備份和遷移工具redis-dump安裝和使用初探Redis
- Puppeteer 初探
- gRPC 初探RPC
- ## RATreeView 初探View
- 初探Firewalld
- Serverless初探Server
- Mobx 初探
- 初探PWA
- 初探TCPTCP
- 初探 BaconJSJS
- 初探 TypeScriptTypeScript
- ECharts 初探Echarts
- Quantum 初探
- 初探 XSS
- 初探canvasCanvas
- puppeteer初探
- Promise初探Promise
- websoctet初探Web
- 初探 Recompose
- jsbridge初探JS
- Nginx 初探Nginx
- Deno 初探
- ELK初探
- Quartz初探quartz
- 初探IndexedDBIndex
- jQuery初探jQuery
- Docker初探Docker
- angr初探
- Vue初探Vue
- Gitee初探Gitee
- MapDB初探
- CSS Modules 初探CSS