一、簡介
Redis是NoSQL數據庫,並且是一個高性能的key-value數據庫。
Redis 是一個開源的使用 ANSI C 語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware作爲 Key-value 型數據庫,Redis 也提供了鍵(Key)和鍵值(Value)的映射關係。但是,除了常規的數值或字符串,Redis 的鍵值還可以是以下形式之一:
- Lists (列表)
- Sets (集合)
- Sorted sets (有序集合)
- Hashes (哈希表)
二、特性
存儲結構:
redis以字典結構存儲數據,它支持的鍵值數據類型如下:字符串類型、散列類型、列表類型、集合類型、有序集合類型.
內存存儲與持久化:
爲了避免將數據存儲在內存中應爲程序退出或者機器異常關機等導致內存中數據丟失的問題,redis提供了對持久化的支持,即將內存中的數據異步寫入到硬盤中。
主從同步
Redis 支持將數據同步到多臺從庫上,這種特性對提高讀取性能非常有益
性能
相比需要依賴磁盤記錄每個更新的數據庫,基於內存的特性無疑給 Redis 帶來了非常優秀的性能。讀寫操作之間有顯著的性能差
三、適用場合
- 取最新 N 個數據的操作
- 排行榜應用,取 TOP N 操作
- Pub/Sub 構建實時消息系統
- 緩存
四、發佈與訂閱(publish/subscribe)
SUBSCRIBE:訂閱一個或多個隊列
PUBLISH:向頻道發佈消息
UNSUBSCRIBE:退訂此前訂閱的頻道
PSUBSCRIBE:模式訂閱
例:
客戶端訂閱test-channel頻道:
向test-channel頻道發佈信息:
訂閱的客戶端收到信息:
五、事務
通過MULTI,EXEC,WATCH等命令實現事務功能:將一個或多個命令歸併爲一個操作提請服務器按順序執行的機制,不支持回滾
MULTI:啓動一個事務
EXEC:執行事務,一次性將事務中的所有操作執行完成後返回給客戶端
WATCH:樂觀鎖,在EXEC命令執行之前,用於監視指定數量鍵,如果監視中某任意鍵數據被修改,則服務器拒絕執行事務
例
使用watch樂觀鎖
打開兩個客戶端:
get name後先不執行,在另個一客戶端修改name,則事務不會執行
修改
六、安裝redis(CentOS下)
安裝
[root@n1 ~]# cd /usr/local/
[root@n1 local]# wget http://download.redis.io/releases/redis-5.0.4.tar.gz
[root@n1 local]#tar xzf redis-5.0.4.tar.gz
[root@n1 local]# cd redis-5.0.4
[root@n1 redis-5.0.4]# make
[root@n1 redis-5.0.4]# make install
[root@n1 local]# mv redis-5.0.4 redis
在/usr/local/bin目錄中可以找到剛剛安裝的redis可執行文件。
可執行文件說明
redis-server:redis服務器
redis-cli:命令行客戶端
redis-benchmark:redis性能測試工具
redis-check-aof:AOF文件修復工具
redis-check-dump:RDB文件檢查工具
修改配置文件
[root@n1 ~]# vim /usr/local/redis/redis.conf
protected-mode no #關閉保護模式
daemonize yes #開啓守護進程,後臺運行
後臺啓動redis
查看端口(6379)
本地登錄操作
操作數據庫
[root@n1 ~]# redis-cli
插入數據
127.0.0.1:6379> set name zhang
OK
查詢數據
127.0.0.1:6379> get name
"zhang"
刪除鍵值
127.0.0.1:6379> del name
(integer) 1
驗證鍵是否存在
127.0.0.1:6379> exists name
(integer) 0
停止redis實例
[root@n1 ~]# redis-cli shutdown
下一篇:Redis常用數據類型和操作