Redis 初次見面

目錄

  1. Redis 特性
  2. 使用場景
  3. 初次使用
    安裝(Linux)
    配置
    啓動 redis 的 3 種方法
    使用 redis 客戶端
    關閉 redis 服務
  4. Redis 版本說明
  5. 引用

1 Redis 特性

  1. 速度快(基於內存,C 語言,單線程)
  2. 基於 key value 鍵值對的數據結構服務器。全稱 Remote Dictionary Server。包含 String,Hash, List, Set, SotrSet. 同時在字符串的基礎上演變出位圖(BitMaps) 和 HyperLogLog 兩種數據數據結構。3.2 版本中加入 GEO(地理信息位置)。
  3. 豐富的功能。例如:鍵過時(緩存),發佈訂閱(消息隊列), Lua 腳本(本身實現 Redis 命令),事務,流水線(Pipeline 減小網絡開銷)。
  4. 簡單穩定。
  5. 客戶端語言多。
  6. 持久化(RDB,AOF)。
  7. 主從複製(分佈式的基礎)。
  8. 高可用(Sentinel)和分佈式(Cluster)。

2 使用場景

  1. 緩存redis

    合理的使用緩存可以明顯加快訪問的速度,同時下降數據源的壓力。這也是 Redis 最經常使用的功能。Redis 提供了鍵值過時時間(EXPIRE key seconds)設置,而且也提供了靈活控制最大內存和內存溢出後的淘汰策略。shell

  2. 排行榜數據庫

    每一個網站都有本身的排行榜,例如按照熱度排名的排行榜,發佈時間的排行榜,答題排行榜等等。Redis 提供了列表(List)和有序集合(sorted set)數據結構,合理的使用這些數據結構能夠很方便的構建各類排行榜系統。緩存

  3. 計數器服務器

    計數器在網站應用中很是重要,例如,點贊數加一,瀏覽數加一,還有經常使用的限流操做,限制每一個用戶每秒訪問系統的次數等等,Redis 支持計數功能(INCR key)並且計數的性能也很是好,計數的同時也能夠設置超時時間,這樣就能夠實現限流。網絡

  4. 社交網絡數據結構

    贊/踩,粉絲,共同好友/喜愛,推送,下拉刷新等是社交網站必備的功能,因爲社交網站訪問量一般比較大,並且傳統的數據庫不太適合保存這類數據,Redis 提供的數據結構能夠相對比較容易實現這些功能。連接:Redis實戰:如何構建類微博的億級社交平臺運維

  5. 消息隊列分佈式

    Redis 提供的發佈訂閱(PUB/SUB) 和阻塞隊列(blpop key1...keyN timeout )的功能,雖然和專業的消息隊列比,還不夠強大,但對於通常的消息隊列功能基本知足。工具

3 初次使用

  1. 安裝(Linux)
    Centos yum install redis
  2. 配置
    安裝完成以後,會在 /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
  1. 啓動 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.

若是是生產環境的話,一般建議使用配置文件的方式啓動。

  1. 使用 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.

  1. 關閉 redis 服務
    redis 提供了 shutDown 命令來中止 redis 服務,例如停掉127.0.0.1:6379 服務,使用:redis-cli shutdown 便可。

注意點:

  1. redis 關閉的過程:斷開和客戶端的鏈接,持久化文件生成。相對而言比較優雅。
  2. 不用使用 kill -9,過於粗暴,不但不會作持久化操做,還會形成緩衝區等資源不會優雅關閉。極端狀況下形成 AOF 和複製丟失數據的狀況。
  3. shutdown 還有一個參數,表明是否在關閉 redis 前,生成持久化文件:
    redis-cli shutdown nosave|save

4 Redis 版本說明

redis 借鑑了 Linux 對於版本號的命名規則,版本號第二位若是是奇數,則爲非穩定版本,若是是偶數,則爲穩定版本。當前奇數版本就是下一個穩定版本的開發版本。

重大版本:2.8 提高了 sentinel 的可用性,使其可在生產環境使用;3.0 版本最大的功能:添加了分佈式 Redis Cluster,填補了官方沒有分佈式實現的空白(以前都是用戶本身實現的 sharding)。

5 引用

《Redis 開發與運維》

相關文章
相關標籤/搜索