Redis深入之路(八)

2021-07-17 00:18:36 字數 1244 閱讀 9795

redis 所有的資料庫都儲存在伺服器結構的 db 陣列中。

redis.h/redisserver

typedef

struct redisdb redisdb;

struct redisserver ;

typedef

struct redisclient redisclient;

redis> select1ok

// 此時 redis 客戶端的 db 指標將指向第二個資料庫,即 redisserver 結構中 db 陣列的第二個元素

ok

redis> rpush l1 "1"

"2""3"

(integer) 3

redis> hmset user1 name

"coderjiang" age "28" *** "1"ok

此時,已經在編號為 1 的資料庫中,建立鍵值對:

# 內部結構表示如下(僅為方便表示內部資料狀態,並非真實c內部資料狀態):

redisdb =

}}

使用命名:expire 或者 pexpire 命令,設定鍵的過期時間

redis> set k1 "v1"

// 設定鍵 k1 的值為 "v1"

okredis> expire k1 3

// 設定鍵 k1 在 3 秒後過期

(integer) 1

redis> get k1// 3秒之內執行

"v1"

redis> ttl k1// 檢視鍵 k1 還有幾秒過期

2redis> get k1// 3秒之後執行

(nil)

儲存過期時間
結構 redisdb 中屬性 exipres 儲存著鍵的過期時間。

惰性刪除
當乙個鍵過期後,redis 不會主動刪除,並**記憶體;只有當程式在取鍵時,判斷是否過期,執行**操作。

定期刪除
每個一段時間執行一次刪除過期鍵操作,並限制操作執行的時長和頻率,較少刪除操作對 cpu 的占用。

redis 結合使用以上兩種過期鍵刪除策略

Redis深入之路(十四)

redis 的 sort 命令可以對,列表鍵,集合鍵,有序集合鍵進行排序 redis rpush ints 354 21 integers 5 預設按照數字大小進行公升序排序 redis sort ints 1 2 3 4 5 使用降序排序 redis sort ints desc 5 4 3 2 ...

FPGA 學習之路(八)深入理解狀態機

什麼是狀態機 狀態機通過不同的狀態遷移來完成特定的邏輯操作 時序操作 狀態機的分類 moore型狀態機和mealy型狀態機 moore型 狀態機的變化只與當前的狀態有關 mealy型 狀態機的變化不僅與當前的狀態有關,還與輸入有關 如何建立狀態機 狀態機的建立可以分為一段式,兩段式和三段式 一段式 ...

Python開發之路(八)

一 異常處理 try和except 釋義 try是讓程式先試著執行try下的 如果不報錯就走這條 except是一旦try下的 在執行過程中報錯,就走except這條。例如一段 try print 11111 l l 2 int a print 222222 except exception as ...