broker快取:
- mongodb 存硬碟
- redis 預設存記憶體,配置可存硬碟
- memcache 只能存記憶體
remote dictionary server(redis)
redis官網:
redis資料型別:
- string 操作 set get
- hash 操作 hset hget
- list 操作 lpush lrange
- set 操作 sadd smembers
- sort set 操作
啟動服務:
切換目錄到 c:\redis 執行 redis-server.exe redis.windows.conf
連線服務:
切換到redis目錄下執行 redis-cli.exe -h 127.0.0.1 -p 6379
設定鍵值對 set mykey abc
取出鍵值對 get mykey
安裝第三方庫
pip install redis
import redis
r = redis.redis(host="127.0.0.1", port=6379)
r.set("foo", "***")
print(r.get("foo")) # b'***'
url鏈結
redis://username[:password]@host:port/db
# tcp連線
import redis
pool = redis.connectionpool(host="127.0.0.1", port=6379)
r = redis.redis(connection_pool=pool)
r.set("cat", "tom")
print(r.get("cat"))
import redis
pool = redis.connectionpool(host="127.0.0.1", port=6379)
r = redis.redis(connection_pool=pool)
pipe=r.pipeline(transaction=true)
pipe.set("key1", "value1")
pipe.set("key2", "value2")
pipe.execute() # 一起執行
print(r.get("key1"))
# 封裝的公共類
import redis
class
redishelper:
def__init__
(self):
self.__conn = redis.redis(host='127.0.0.1')
self.chan_sub = 'fm104.5'
self.chan_pub = 'fm104.5'
defpublic
(self, msg):
self.__conn.publish(self.chan_pub, msg)
return
true
defsubscribe
(self):
pub = self.__conn.pubsub()
pub.subscribe(self.chan_sub)
pub.parse_response()
return pub
# 發布者
import redis_helper
obj = redis_helper.redishelper()
obj.public('hello')
print("發布成功")
# 訂閱者
import redis_helper
obj = redis_helper.redishelper()
redis_sub = obj.subscribe()
print("開始訂閱")
while
true:
msg = redis_sub.parse_response()
print(msg)
參考文章:redis-py
redis 命令參考
《redis 教程-菜鳥教程》
《python之路【第九篇】:python操作redis》
《python 之路,day12 - redis快取資料庫》
快取 redis 快取穿透
哪一些因素 考慮使用redis,畢竟 redis 也要增加成本 1 熱點資料 2 讀的成本非常大 3 讀多寫少 4 對資料一致性要求 沒有那麼嚴格 可以出現資料與資料庫不一致 1 秒殺場景 3 物流查詢軌跡 熱點資料 啟用的資料是被快取到redis 當中 快取key 乙個時間點過期的時候,如果快取資...
python程式設計(redis操作)
1 安裝redis 安裝redis不複雜,乙個apt get命令就可以解決,sudo apt get install redis server 2 驗證redis是否已經安裝 ps aux grep redis 3 安裝python redis sudo apt get install python...
Redis快取穿透 快取雪崩
把redis作為快取使用已經是司空見慣,但是使用redis後也可能會碰到一系列的問題,尤其是資料量很大的時候,經典的幾個問題如下 一 快取和資料庫間資料一致性問題 分布式環境下 單機就不用說了 非常容易出現快取和資料庫間的資料一致性問題,針對這一點的話,只能說,如果你的專案對快取的要求是強一致性的,...