redis 遠端字典服務 ——
nosql
技術一、五種基本的資料型別
string list hash set sorted set(排序集合
)二、五種特性
(1)inmemory 在記憶體中 與
cache
類似,是乙個以
key-value
儲存的快取系統
(2)弱化事務 基本是沒有事務概念的,只有在某些地方會對事務進行遍歷,而且它的遍歷也不是遇到錯誤就停下來,而是遇到錯誤不管也不處理。
(3)集群環境
(4)key-value查詢
(5)指令碼語言支援 三、
redis是乙個單執行緒的系統,
支援持久化(cache
不支援持久化),
訂閱/發布功能(
redis 的訊息佇列功能
a b c
如果a,b,c
伺服器都訂閱
redis
的某個key
,那麼就可以通過
a在這個
key裡發布資訊,放到
redis
的訊息佇列,
redis
會把訊息推送到所有訂閱了這個
key的b,
c伺服器。
redis
本身是不儲存這個資料的。)
四、redis和
memcache
的區別memcache不能集群,最大為
1mredis可以集群,最大為1g
五、redis 常用於
web伺服器和資料庫之間,充當快取系統,因為其具有持久化功能,可以連線資料庫,大量的資料放在
redis
裡面快取,
web伺服器或者應用與
redis
快取進行互動,可提高程式執行的效能。
web伺服器——
redis
伺服器——資料庫
六、redis有乙個第三方的圖形介面
redis desktop manager
。不過並不是特別的好用。
七、redis資料結構的各種命令
redis命令參考
string 型別
list型別
lpush rpush lpop rpop irange blpop brpop阻塞版
八、session管理
九、集群服務
1、解決單節點故障
2、讀寫分離
redis share
web伺服器 ——redis mater
redis share
十、redis充當message queue
訊息佇列 實現訂閱/發布功能
十一、redis充當資料庫伺服器
十二、redis目前需要解決的問題就是記憶體問題?
記憶體有限,遊戲資料龐大,如何把redis記憶體中的資料寫入到資料庫中,或者從資料庫中讀出來資料。
1、序列化到本地
2、redis是否支援資料寫入到記憶體中
3、集群擴容,不過這只能解決容量的問題,不能解決遊戲中大量死資料的問題
解決記憶體問題:主要還是要從如果從遊戲死資料中分離出來活躍使用者的角度下手。
方法:合服的時候清除死資料,判斷玩家playerbean資料是否超過某一時間,超過時間設定玩家playcache裡狀態標識位為非法。在從資料庫大量load玩家playercache資料到記憶體中,狀態非法和資料為空的被剔除掉。
4、架構解決
redis的清除過期機制:
每次隨機10
個key
,空閒的時間不停的執行。記憶體緊張的時候會全部遍歷,刪除過期的
key來釋放記憶體。
redis基本知識
sds字串的優點 杜絕緩衝區溢位 在c語言中,新增字串都會假設儲存的長度能足夠的容納新增的字串,然而新增長度一旦超過了儲存的長度,就會存在緩衝區溢位,使得新增的字串被擷取,導致新增字串內容丟失。減少修改字串時帶來的記憶體重分配次數 c語言中,字串本身並不記錄自身的長度,而字串的底層實現總是乙個n 1...
Redis基本知識
redis 是什麼?redis remote dictionary server 即遠端字典服務 使用ansi c語言編寫 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。免費,開源,是當下最熱門的 nosql 技術之一。redis 可以做什麼?redis...
redis基本知識
redis預設有16個資料庫 預設使用第0個 使用select切換資料庫 dbsize檢視大小 keys 檢視資料庫所有的key flushdb清除當前資料庫 flushall清除全部資料庫 redis是單執行緒的基於記憶體操作 核心 redis是將所有的資料庫全部放在記憶體中,所以使用單執行緒去操...