Redis(1)初識

Redis

redis

Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps. (http://redis.io

Redis特性

  • 速度快
    1. 支持10w OPS
    2. 數據存儲在內存中,存取熟讀快
    3. 使用C語言編寫,執行效率較高
    4. 單線程模型,避免多線程上下文切換的額外消耗,連接使用多路複用
  • 可持久化
  • 支持多種數據結構
    1. String(BitMaps/HyperLogLog/Blobs)
    2. Map(Object)
    3. List
    4. Set
    5. Zset
    6. GEO
  • 支持多種編程語言
    1. Java
  • 功能豐富
    1. 發佈訂閱
    2. Lua腳本
    3. 事物
    4. pipeline
  • 使用簡單
    1. 23k代碼(不包括集羣)
    2. 不依賴外部庫
    3. 單線程模型
  • 支持主從複製
  • 支持高可用、分佈式
    1. Redis-Sentinel(2.8+)
    2. Redis-Cluster(3.0+)

使用場景舉例

  • 緩存系統:App Cache
  • 計數器:視頻播放數
  • 消息隊列系統:發佈訂閱
  • 排行榜:熱搜
  • 社交網絡:轉發數、評論數、點贊數
  • 實時系統:布隆過濾器、geo

Redis安裝(Linux)

cd /usr/local
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar -xzvf redis-5.0.8.tar.gz
mv redis-5.0.8 redis
cd redis
make 
make install

Redis可執行文件

  • redis-server:Redis服務器
  • redis-cli:Redis Client Shell
  • redis-benchmark:Redis性能測試工具
  • redis-check-aof:AOF文件檢查修復工具
  • redis-check-dump:RDB文件檢查修復工具
  • redis-sentinel:Redis Sentinel服務器

Redis啓動方法

  • 最簡啓動:redis-server
  • 動態參數啓動:redis-server --port=6379
  • 配置文件啓動:redis-server /etc/redis.conf

Redis客戶端連接

redis-cli -h 127.0.0.1 -p 6379

Redis客戶端返回值類型

  • 狀態回覆
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> 
    
  • 錯誤回覆
    127.0.0.1:6379> hget hello field
    (error) WRONGTYPE Operation against a key holding the wrong kind of value
    127.0.0.1:6379> 
    
  • 整數回覆
    127.0.0.1:6379> set num 1
    OK
    127.0.0.1:6379> incr num
    (integer) 2
    127.0.0.1:6379>
    
  • 字符串回覆
    127.0.0.1:6379> get hello
    "world"
    127.0.0.1:6379> 
    
  • 多行字符串回覆
    127.0.0.1:6379> mget hello foo
    1) "world"
    2) "bar"
    127.0.0.1:6379> 
    

Redis-server常用配置

配置項 意義 默認值 建議值
daemonize 是否以守護進程方式啓動 no yes
port Redis服務端口 6379 合適的端口
logfile Redid日誌文件路徑 - -
dir Redis工作目錄,日誌文件、持久化文件將在工作目錄下創建 - -

可以使用config get [name|*]獲取某個配置或所有配置

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