Redis系列學習筆記2 Redis字串

2021-07-11 23:56:12 字數 2522 閱讀 9730

設定值

set key value [nx|xx]

[nx|xx]為可選。

nx:僅在鍵key不存在的情況下,才進行設定操作,如果鍵存在,那麼將不做任何動作。

xx:僅在鍵key已經存在的情況下,才進行設定操作,如果鍵key不存在,那麼不做任何動作

set key value nx和setnx key value效果一樣

set key value xx和setxx key value效果一樣

獲取字串的值

get key
設定多個鍵值對

mset key value [key value …]

獲取多個鍵值對

mget key [key …]

getset key new-value

redis中存在 key value鍵值對,執行

getset key new-value

會將key的值設定為new-value,同時返回值為value

示例:

set key value

最後的值為value-1

返回值的長度

strlen key

setrange key index value

從索引index開始,用value覆寫給定鍵key所儲存的字串值

例:

redis>set msg "hello"

redis>get msg

getrange key start end

返回鍵 key 儲存的字串值中,位於 start 和 end 兩個索引之間的內容(閉區間,start 和 end 會被包括在內)。和setrange 只接受正數索引不同,getrange的索引可以是正數或者負數。

只要儲存在字串鍵裡面的值可以被解釋為 64 位整數,或者 ieee-754 標準的 64 位浮點數,那麼使用者就可以對這個字串鍵執行針對數字值的命令。

incrby key increment

將key的值增加increment

decrby key decrement

將key的值減少decrement

注意:鍵不存在時,鍵的值初始化為0,然後再執行加減操作

incr key

將key的值加1

decr key

將key的值減1

idgenerator(name,client): 設定id生成器的名字和客戶端

idgenerator.gen(): 生成乙個新的自增id

idgenerator.init(n):保留前n個id,idgenerator.init(10000),這樣生成器建立的id就會從10001開始

incrbyfloat key increment

increment為浮點數

setbit key index value

將給定索引上的二進位制位的值設定為value,命令返回被設定的位原來儲存的舊值

例如將10110000設定第2位為1

setbit bits 2 1

10110000

變成10110100

getbit key index

返回給定索引上的二進位制位的值

bitcount key [start][end]

計算並返回字串鍵儲存的值中,被設定為1的二進位制位的數量

bitop operation destkey key[key …]

對乙個或者多個儲存二進位制位的字串鍵執行位元操作,並將結果儲存在destkey上。operation可以是and、or、not、xor這四種操作中的任意一種:

邏輯操作

描述bitop and destkey key [key1 …]

對乙個或者多個key求邏輯並,並將結果儲存到destkey

bitop or destkey key [key1 …]

對乙個或多個 key 求邏輯或,並將結果儲存到 destkey 。

bitop xor destkey key [key1 …]

對乙個或多個 key 求邏輯異或,並將結果儲存到 destkey 。

bitop not destkey key

對給定 key 求邏輯非,並將結果儲存到 destkey 。

api說明命令操作

onlinecount(when, client)

onlinecount.inclue(user_id)

呼叫setbit命令

onlinecount.result()

呼叫bitcount命令

目前這個實現的優點:

即使使用者數量非常大,占用的記憶體也不多:記錄一百萬使用者僅需一百萬位,也即是 0.125 mb;記錄一千萬用

戶僅需一千萬位,也即是 1.25 mb 。

目前這個實現的缺點:

進一步的優化:

strlen、setrange 和 getrange 不適用於中文

Redis系列學習筆記3 雜湊

儲存多個域值對。乙個雜湊由多個域值對 field value pair 組成,雜湊的域和值都可以是文字 整數 浮點數或者二進位制資料。同乙個雜湊裡面的每個域必須是獨一無 二 各不相同的,而域的值則沒有這一要求,換句話說,不同域的值可以是重複的。通過命令,使用者可以對雜湊執行設定域值對 獲取域的值 檢...

Redis系列學習 一 Redis簡介

2.4 總結 3.redis的特點 4.redis的應用場景 5.redis總結 redis是乙個開源的 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 高效能 nosql key value資料庫。nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難...

opencv系列學習 2

傅利葉變換會將影象分解成其正弦和余弦分量。換句話說,它將影象從空間域轉換到頻率域。這個想法是,任何函式都可以用無限的正弦和余弦函式之和精確地近似。傅利葉變換是一種方法。數學上,二維影象的傅利葉變換為 include opencv2 core.hpp include opencv2 imgproc.h...