Redis是完全開源免費的,用C語言編寫的,遵守BSD協議,是一個高性能的(key/value)分佈式內存數據庫,基於內存運行並支持持久化的NoSQL數據庫,是當前最熱門的NoSql數據庫之一,也被人們稱爲數據結構服務器。
redis的安裝與啓動可參考博客:
【Redis】Redis如何搭建與啓動,以及如何設置開機自啓
一、Redis特點
1、速度快
讀的數據是110000次/s左右,寫的速度是81000次/s左右
(1)數據存在內存中
(2)C語言實現,離操作系統近,執行速度快
(3)單線程架構,預防了多線程可能產生的競爭問題
(4)源代碼集性能與優雅於一身
2、豐富的數據類型
基於鍵值對,值不僅可以是字符串, 而且還可以是具
體的數據結構,支持String,Hash,List,Set,ZSet數據類型操作
3、豐富的功能
(1)鍵過期功能, 可以用來實現緩存
(2)發佈訂閱功能,可以用來實現消息系統
(3)支持Lua腳本功能, 可以利用Lua創造出新的Redis命令
(4)提供了簡單的事務功能, 能在一定程度上保證事務特性
(5)提供了流水線(Pipeline) 功能, 這樣客戶端能將一批命令一次性傳到Redis, 減少了網絡的開銷
4、簡單穩定
源碼少,使用的是單線程模型,不依賴操作系統中的類庫,Redis自己實現了事件處理的相關功能
5、原子性
redis的所有操作都是原子性的,也就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的,多個操作支持事務,通過MULTI和EXEC指令包起來
6、客戶端語言多
Redis提供了簡單的TCP通信協議, 很多編程語言可以很方便地接入到Redis,支持Redis的客戶端有:Java、 PHP、Python、 C、 C++、 Nodejs等
7、持久化
數據放在內存中是不安全的,Redis提供了兩種持久化方式: RDB和AOF。也就是將內存的數據保存到硬盤中,保證數據的可持久性
(1)RDB
每次寫都是全部數據到磁盤,代價高
(2)AOF
追加的log可能過大,同時所有操作均重新執行一遍,恢復速度慢
8、主從複製
Redis提供了複製功能, 實現了多個相同數據的Redis副本,複製功能是分佈式Redis的基礎
9、高可用和分佈式
從2.8版本正式提供了高可用實現Redis Sentinel, 它能夠保證Redis
節點的故障發現和故障自動轉移
從3.0版本正式提供了分佈式實現Redis Cluster, 它是Redis真正的分佈式實現,提供了高可用、 讀寫和容量的擴展性。
二、Redis的一些常用操作
可執行文件 | 說明 |
---|---|
redis-server | 啓動Redis |
redis-cli | Redis命令行客戶端 |
redis-benchmark | Redis基準測試工具 |
redis-check-aof | Redis AOF持久化文件檢測和恢復工具 |
redis-check-dump | Redis RDB持久化文件檢測和恢復工具 |
redis-sentiel | 啓動Redis Sentinel |
redis啓動
redis-server
redis命令行客戶端
redis-cli -h 192.168.226.133 -p 6379
停止redis服務
redis-cli shutdown
以shutdown方式關閉redis較好,因爲若參數爲save的shutdown方式,可以生成持久化文件
redis-cli shutdown nosave|save
以kill進程號方式關閉redis,不會做持久化操作,會造成AOF和複製丟失數據的情況
三、Redis的一些常用命令
查看所有鍵
keys *
查看鍵總數
dbsize
檢查鍵是否存在
exists key
刪除鍵
del key
del [key ...]
鍵過期
expire key seconds
查看鍵剩餘過期時間
-1表示永不過期,-2表示已過期
ttl key
查看鍵的數據結構類型
type key