列表使用與內部實現原理

2021-10-25 08:31:04 字數 808 閱讀 2736

列表型別 (list) 是乙個使用鍊錶結構儲存的有序結構,它的元素插入會按照先後順序儲存到鍊錶結構中,因此它的元素操作 (插入\刪除) 時間複雜度為 o(1),所以相對來說速度還是比較快的,但它的查詢時間複雜度為 o(n),因此查詢可能會比較慢。

列表型別的使用相對來說比較簡單,對它的操作就相當操作乙個沒有任何 key 值的 value 集合,如下圖所示:

1)給列表新增乙個或多個元素

語法:lpush key value [value …] 示例:

127.0.0.1:6379> lpush list 1 2 3

(integer) 3

2)給列表尾部新增乙個或多個元素

語法:rpush key value [value …] 示例:

127.0.0.1:6379> rpush list2 1 2 3

(integer) 3

3)返回列表指定區間內的元素

語法:lrange key start stop 示例:

127.0.0.1:6379> lrange list 0 -1

"3""2"

"1"127.0.0.1:6379> lrange list2 0 -1

"1""2"

"3"

其中 -1 代表列表中的最後乙個元素。

4)獲取並刪除列表的第乙個元素

語法&

memcache 內部原理實現

lazy expiration memcached 內部不會監視記錄是否過期,而是在 get 時檢視記錄的時間戳,檢查記錄是否過期。這 種技術被稱為 lazy 惰性 expiration。因此,memcached 不會在過期監視上耗費 cpu 時間。lru least recently used 最...

Promise內部實現原理

promise內部實現原理 function promise fn this triggerresolve val 失敗函式處理 const reject val trycatch err promise.prototype onrejected typeof onrejected function...

Redis LFU與LRU內部實現原理原始碼分析

1 lru模式有效控制記憶體的大小,將冷資料從記憶體中淘汰出去,在redis裡引入乙個新的淘汰形式lfu 1 lfu全稱是least frequently used 表示按最近的訪問頻率進行淘汰,更加準確的判斷乙個key別訪問的熱度 2 redis物件的熱度 redis中所有物件結構頭中都有乙個24...