Redis
Redis 記憶體資料結構儲存系統
- 讓您的應用程式擺脫磁碟 I/O 的束縛。Redis 將資料存放於記憶體中,提供近乎即時的數據存取能力。無論是存放熱點新聞、使用者 Session、即時排行榜,還是作為微服務間的高速訊息緩衝,Redis 都能以極低的延遲與超高的吞吐量,支撐起每秒數百萬次的請求挑戰。
- 多樣化資料結構: 不僅支援簡單的 Key-Value,還內建 Strings, Hashes, Lists, Sets, Sorted Sets (ZSet), Bitmaps, HyperLogLogs 與 Geospatial 索引。
- 原子性操作 (Atomic): 所有 Redis 操作都是原子性的,確保在多執行緒併發環境下資料的一致性與安全性。
- 數據持久化機制: 支援 RDB(快照)與 AOF(日誌)兩種模式,在享受記憶體高速的同時,也能保證伺服器重啟後的數據恢復。
- 內建 Pub/Sub 與 Stream: 提供強大的訊息發佈/訂閱模式與現代化的 Stream 數據類型,是建構即時聊天或異步任務隊列的理想選擇。
- 高可用與分佈式: 透過 Redis Sentinel 實現自動故障轉移,並透過 Redis Cluster 輕鬆達成橫向擴展,管理 PB 級別的記憶體數據。
主要功能、特點
介紹: Redis 是一款開源的記憶體資料庫。它以簡單易用、極致效能與豐富的客戶端語言支援(Java, Python, Go, Node.js 等)成為開發者的標配工具。
服務: 提供數據快取加速、分散式鎖 (Distributed Lock)、會話管理 (Session Management)、即時流量統計以及地理空間位置計算等核心服務。
指令
# coding:utf-8
import redis
# lredis-server保持開啓狀態,如果在客戶端設定了密碼 添加password=密碼即可
pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=0)
r = redis.StrictRedis(connection_pool=pool)
# 字符串
r.set('test', 'aaa')
print r.get('test')
# 列表
# 注意python、lrange兩個range的範圍
x = 0
for x in range(0, 11):
r.lpush('list', x)
x = x + 1
print r.lrange('list', '0', '10')
# 雜湊
dict_hash = {'name': 'tang', 'password': 'tang_passwd'}
r.hmset('hash_test', dict_hash)
print r.hgetall('hash_test')
# 集合
r.sadd('set_test', 'aaa', 'bbb')
r.sadd('set_test', 'ccc')
r.sadd('set_test', 'ddd')
print r.smembers('set_test')
# 有序集
r.zadd('zset_test', {'aaa': 1, 'bbb': 1})
r.zadd('zset_test', {'ccc': 1})
r.zadd('zset_test', {'ddd': 1})
print r.zrange('zset_test', 0, 10)


