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特性
- 速度快
- 支持10w OPS
- 數據存儲在內存中,存取熟讀快
- 使用C語言編寫,執行效率較高
- 單線程模型,避免多線程上下文切換的額外消耗,連接使用多路複用
- 可持久化
- 支持多種數據結構
- String(BitMaps/HyperLogLog/Blobs)
- Map(Object)
- List
- Set
- Zset
- GEO
- 支持多種編程語言
- Java
- 功能豐富
- 發佈訂閱
- Lua腳本
- 事物
- pipeline
- 使用簡單
- 23k代碼(不包括集羣)
- 不依賴外部庫
- 單線程模型
- 支持主從複製
- 支持高可用、分佈式
- Redis-Sentinel(2.8+)
- 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 Shellredis-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|*]
獲取某個配置或所有配置