目錄
- Redis 特性
- 使用場景
- 初次使用
安裝(Linux)
配置
啓動 redis 的 3 種方法
使用 redis 客戶端
關閉 redis 服務
- Redis 版本說明
- 引用
1 Redis 特性
- 速度快(基於內存,C 語言,單線程)
- 基於 key value 鍵值對的數據結構服務器。全稱 Remote Dictionary Server。包含 String,Hash, List, Set, SotrSet. 同時在字符串的基礎上演變出位圖(BitMaps) 和 HyperLogLog 兩種數據數據結構。3.2 版本中加入 GEO(地理信息位置)。
- 豐富的功能。例如:鍵過時(緩存),發佈訂閱(消息隊列), Lua 腳本(本身實現 Redis 命令),事務,流水線(Pipeline 減小網絡開銷)。
- 簡單穩定。
- 客戶端語言多。
- 持久化(RDB,AOF)。
- 主從複製(分佈式的基礎)。
- 高可用(Sentinel)和分佈式(Cluster)。
2 使用場景
緩存redis
合理的使用緩存可以明顯加快訪問的速度,同時下降數據源的壓力。這也是 Redis 最經常使用的功能。Redis 提供了鍵值過時時間(EXPIRE key seconds
)設置,而且也提供了靈活控制最大內存和內存溢出後的淘汰策略。shell
排行榜數據庫
每一個網站都有本身的排行榜,例如按照熱度排名的排行榜,發佈時間的排行榜,答題排行榜等等。Redis 提供了列表(List)和有序集合(sorted set)數據結構,合理的使用這些數據結構能夠很方便的構建各類排行榜系統。緩存
計數器服務器
計數器在網站應用中很是重要,例如,點贊數加一,瀏覽數加一,還有經常使用的限流操做,限制每一個用戶每秒訪問系統的次數等等,Redis 支持計數功能(INCR key)並且計數的性能也很是好,計數的同時也能夠設置超時時間,這樣就能夠實現限流。網絡
社交網絡數據結構
贊/踩,粉絲,共同好友/喜愛,推送,下拉刷新等是社交網站必備的功能,因爲社交網站訪問量一般比較大,並且傳統的數據庫不太適合保存這類數據,Redis 提供的數據結構能夠相對比較容易實現這些功能。連接:Redis實戰:如何構建類微博的億級社交平臺運維
消息隊列分佈式
Redis 提供的發佈訂閱(PUB/SUB) 和阻塞隊列(blpop key1...keyN timeout )的功能,雖然和專業的消息隊列比,還不夠強大,但對於通常的消息隊列功能基本知足。工具
3 初次使用
- 安裝(Linux)
Centos yum install redis
- 配置
安裝完成以後,會在 /usr/local/bin 目錄目錄下,多出幾個可執行文件,稱之爲 redis shell。以下:
redis-server |
啓動 redis 服務 |
redis-cli |
redis 命令行客戶端 |
redis-benchmark |
redis 基準測試工具 |
redis-check-aof |
redis AOF 持久化文件檢測和修復工具 |
redis-check-dump |
redis RDB 持久化文件檢測和修復工具 |
redis-sentinel |
啓動 redis sentinel |
- 啓動 redis 的 3 種方法
3.1 配置文件啓動
將配置寫到配置文件中,例如寫到 /opt/redis/redis.conf 中,執行 redis-server /opt/redis/redis.conf 便可啓動 redis。redis 有 60 多個配置,經常使用的是:port(端口),logfile(日誌文件),dir(redis 工做目錄,存放持久化文件和日誌文件),daemonize(是否以守護進程的方式啓動 redis)。
3.2 運行啓動
在 redis-server 後面加入參數,格式爲:redis-server --configkey1 configvaue1 --configkey2 configvalue2. 例如:redis-server --port 6380 ,即,將端口自定義爲 6380.
3.3 默認啓動
直接 redis-server,默認端口 6379.
若是是生產環境的話,一般建議使用配置文件的方式啓動。
- 使用 redis 客戶端
redis 客戶端能夠經過設置 ip 端口,鏈接 redis 服務器並執行命令。而使用redis-cli 的方式有 2 種。
4.1 交互式方式
經過 redis cli -h [host] -p [port] 的方式鏈接到 reids 服務。
4.2 命令式方式
經過 redis-cli -h [host] -p [port] [command] 就能夠,是一次性的。
注意:若是不指定 host,port ,默認鏈接 127.0.0.1:6379.
- 關閉 redis 服務
redis 提供了 shutDown 命令來中止 redis 服務,例如停掉127.0.0.1:6379 服務,使用:redis-cli shutdown 便可。
注意點:
- redis 關閉的過程:斷開和客戶端的鏈接,持久化文件生成。相對而言比較優雅。
- 不用使用 kill -9,過於粗暴,不但不會作持久化操做,還會形成緩衝區等資源不會優雅關閉。極端狀況下形成 AOF 和複製丟失數據的狀況。
- shutdown 還有一個參數,表明是否在關閉 redis 前,生成持久化文件:
redis-cli shutdown nosave|save
4 Redis 版本說明
redis 借鑑了 Linux 對於版本號的命名規則,版本號第二位若是是奇數,則爲非穩定版本,若是是偶數,則爲穩定版本。當前奇數版本就是下一個穩定版本的開發版本。
重大版本:2.8 提高了 sentinel 的可用性,使其可在生產環境使用;3.0 版本最大的功能:添加了分佈式 Redis Cluster,填補了官方沒有分佈式實現的空白(以前都是用戶本身實現的 sharding)。
5 引用
《Redis 開發與運維》