redis 是什麼?redis(remote dictionary server ),即遠端字典服務
使用ansi c語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。
免費,開源,是當下最熱門的 nosql 技術之一。
redis 可以做什麼?redis 具有可持久化的特點,可以做記憶體資料庫。
redis 訪問效率很高,可以用來做快取記憶體。
用於發布訂閱系統
地圖資訊分析
計時器,計數器(瀏覽量)
分布式鎖
redis 的特性資料型別多樣
讀寫速度極快
可持久化
支援集群
支援事務
get & set 就不多說了,redis 預設有 16 個資料庫,同時預設使用的是第乙個(下標為 0 )資料庫,可以使用 select 進行資料庫的切換。
127.0.0.1:6379>
select 1 # 選用第 2 個資料庫
ok127.0.0.1:6379[1]
> dbsize # 檢視當前資料庫的大小
(integer) 0
127.0.0.1:6379[1]
>
set name iron
ok127.0.0.1:6379[1]
> dbsize
(integer) 1
127.0.0.1:6379[2]
>
select 2
ok127.0.0.1:6379[2]
> dbsize
(integer) 0
127.0.0.1:6379[2]
> get name
(nil)
127.0.0.1:6379[2]
>
select 1
ok127.0.0.1:6379[1]
> get name
"iron"
檢視資料庫所有的 key
127.0.0.1:6379[1]
> keys *
1)"name"
清除當前資料庫flushdb
127.0.0.1:6379[1]
>
set name egg
ok127.0.0.1:6379[1]
> keys *
1)"name"
127.0.0.1:6379[1]
> flushdb # 清除當前資料庫
ok127.0.0.1:6379[1]
> keys *
(empty array)
清除全部資料庫flushall
127.0.0.1:6379>
select 0
ok127.0.0.1:6379>
set name iron
ok127.0.0.1:6379> keys *
1)"name"
127.0.0.1:6379>
select 1
ok127.0.0.1:6379[1]
> flushall # 清除全部資料庫,執行完命令後, 0 號資料庫資料為空
ok127.0.0.1:6379[1]
>
select 0
ok127.0.0.1:6379> keys *
(empty array)
設定過期時間以及檢視過期時間
127.0.0.1:6379>
set name iron
ok127.0.0.1:6379> expire name 12 # 設定過期時間,單位 秒
(integer) 1
127.0.0.1:6379> ttl name # 檢視 name 的剩餘有效時間
(integer) 9
127.0.0.1:6379> ttl name
(integer) 7
127.0.0.1:6379> ttl name
(integer) 5
127.0.0.1:6379> ttl name # 當返回 -2 時,表示 key 已失效
(integer) -2
127.0.0.1:6379> ttl age # 對於沒有建立的 key , ttl 返回也是 -2
(integer) -2
檢視當前 key 的型別
127.0.0.1:6379>
set name iron
ok127.0.0.1:6379>
type name
string
redis基本知識
sds字串的優點 杜絕緩衝區溢位 在c語言中,新增字串都會假設儲存的長度能足夠的容納新增的字串,然而新增長度一旦超過了儲存的長度,就會存在緩衝區溢位,使得新增的字串被擷取,導致新增字串內容丟失。減少修改字串時帶來的記憶體重分配次數 c語言中,字串本身並不記錄自身的長度,而字串的底層實現總是乙個n 1...
redis基本知識
redis預設有16個資料庫 預設使用第0個 使用select切換資料庫 dbsize檢視大小 keys 檢視資料庫所有的key flushdb清除當前資料庫 flushall清除全部資料庫 redis是單執行緒的基於記憶體操作 核心 redis是將所有的資料庫全部放在記憶體中,所以使用單執行緒去操...
Redis基本知識
1.redis主要的三種模式 單機模式 分片模式 sharedjedis 集群模式 binaryjediscluster 分片模式通過一致性雜湊將key分布到不同的server上 2.如果乙個事務提交,事務中的所有操作將順序執行,且在事務執行期間其他client將阻塞 a.redis是單執行緒處理不...