Redis鍵值儲存系統 基本知識點

2021-07-10 05:28:18 字數 1920 閱讀 7734

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是將所有的資料庫全部放在記憶體中,所以使用單執行緒去操...