【Redis】Redis是什麼,又能用來做什麼呢

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章