Redis學習 三 API的使用和理解

2021-09-26 20:03:59 字數 4530 閱讀 2161

對redis來說,所有的key都是字串,value可以有多中資料型別,value值字串型別的限制為512m

一:字串

1.使用場景

快取,計數器,分布式鎖

2.命令

get key  獲取key對應的value o(1)

set key value 設定key和value o(1)

del key 刪除key-value  o(1)

incr key key自增1,若key不存在get(key) = 1 o(1)

decr key key自減1,若key不存在,自減後get(key) =-1 o(1)

incrby key k key自增k,若key不存在,自增後get(key)=k o(1)

decrby key k key自減k,若key不存在,自減後get(key)=-k o(1)

set key value 不管key是否存在,都會設定 o(1)

setnx key value key不存在,才設定  o(1)

set key value xx key存在,設定  o(1)

mget key1,key2,key3... 批量獲取key,原子操作 o(n)

mset key1 value1 key2 value2 key3 value3... 批量設定key-value o(n)

getset key newvalue set keynewvalue並返回舊的value o(1)

strlen key 返回字串的長度(注意中文) o(1)

incrbyfloat key 3.6 增減key對應的值3.6,無對應減少值,可以傳負數達到減的效果   o(1)

getrange strart end 獲取字串指定下標所有的值 比如getrange 0 2

setrange key index value 設定下標所有對應的值

二:雜湊鍵值

1.結構

key                 filed    value

user:1:info     name  kobe

age     38

date    201

add a new value

新增               time   2019

可單獨去操作

2.特點

filed不能相同,value可相同

3.api

hget key  field 獲取hash key對應的field的value  o(1)

hset key  field value 設定hash key 對應field的value o(1)

hdel key field 刪除hash key對應的field的value   o(1)

hexists key field  判斷hash key是否有field    o(1)

hlen key 獲取hash key field的數量  o(1)

hmget key field1 field2 ...fieldn 批量獲取hash key的一批field對應的值   o(n)

hmset key field1 value1 field2 value2 ...fieldn valuen 批量設定hash key的一批field value  o(n)

hgetall key 返回對應key所有屬性field和值value o(n) tips:若資料較多,注意使用該命令

hvals key 返回hash key對應的所有field的value  o(n)

hkeys key 返回hash key對應的所有field o(n)

hsetnx key field value 設定hash key 對應field的value(若field已經存在,則失敗)  o(1)

hincrby key field intcounter  設定hash key 對應的field的 value自增intcounter  o(1)

hincrbyfloat key field floatcounter 設定hincrby浮點數   o(1)

三:list

1.結構

key                 elements

user:1:info      a-b-c-d...

2.特點

(1)有序,根據插入順序 

(2)可以重複

(3)左右兩邊插入彈出

3.api

增rpush key value1 value2 ...valuen   從列表的 右端插入值(1-n個)o(1~n)

lpush key value1 value2 ...valuen    從列表的 左端插入值(1-n個)o(1~n)

linsert key before|after value newvalue  在list指定的值前後插入newvalue  o(n)

刪lpop key 從左邊彈出乙個item  o(1)

rpop key 從右邊彈出乙個item   o(1)

lrem key count value 

根據count值,從列表中刪除所有value相等的項

(1)count < 0,從左到右,刪除最多count個value相等的項

(2)count > 0,從右到左,刪除最多math.abs(count)個value相等的項

(3)count  = 0,刪除所有value相等的值

ltrim key start end 按照索引範圍修剪列表  o(1) 保留起始和結束list

查lrange key start end(包含end) 獲取列表指定索引範圍索引item o(n)

lindex key index 獲取類別指定索引的item   o(n)

llen key 獲取列表長度  o(1)

改lset key index newvalue 設定列表指定索引值為newvalue o(n)

其他blpop key timeout     lpop 阻塞版本,timeout是阻塞超時時間,timeout=0為永遠不阻塞 o(1)

brpop key  timeout    rpop阻塞版本,timeout是阻塞超時時間,timeout=0為永遠不阻塞  o(1)

tips:

1.lrush + lpop = stack

2.lpush + rpop = quene

4.lpush + brpop = message quene

四:set

1.特點

無序,無重複元素,支援集合間操作(交集,並集,差集)

2.api

sadd key element 向集合key新增element(如果element已經存在,新增失敗)o(1)

srem key element 將集合key中的element移除掉  o(1)

scard key 計算集合大小

sismember key element 判斷element是否存在集合中

srandmember key count 從集合中隨機挑選count個元素

spop key 從集合中隨機彈出乙個元素 

smembers key 獲取集合所有元素  (無序,若元素特別多,需小心使用)

集合間api

sdiff key1 key2 差集

sinter key1 key2 交集

sunion key1 key2 並集

sdiff|sinter|sunion +store destkey 將差集、交集、並集儲存到destkey中(例項:unionstore testset user:1:follow user:1:info)

五:zset

1.結構

key             score        value 

user:info      1              name

2.特點

無重複元素,有序,element+score

3.api

zadd key score elemet(可以是多對,score 可重複,element不可以重複)   新增score和element  o(logn)

zrem key element (多個element)刪除元素  o(1)

zscore key element 返回運算的分數  o(1)

zincrby key increscore element 增加或減少元素分數 o(1)

zcard key 返回元素的個數  o(1)

zrange key start end [withscores] 返回指定索引範圍內的公升序元素[分值]  o(logn+m)

zrangebyscore key minscore maxscore [withscores] 返回指定分數範圍內的公升序元素 o(logn+m)

zcount key minscore maxscore 返回有序集合內在指定分數範圍內的個數   o(logn+m)

zremrangebyrank key start end 刪除指定排名內的公升序元素  o(logn+m)

zremrangebyscore key minscore maxscore   刪除指定分數內的公升序元素 o(logn+m)

REDIS使用指南三 Redis的使用

3 redis的使用 3.1 啟動redis服務 3.2 啟動和退出命令列操作工具 3.3 命令列下常用資料結構的操作 2.3.1 字串的操作 可儲存任何形式的字串,包括二進位制資料,乙個字串型別鍵允許儲存的最大容量是512m。如果key對應的值是字串,會報錯 err value is not an...

學習筆記 API的使用

api呼叫 用於與使用非常具體的url請求特定資訊的程式互動,請求的資料以易於處理的格式 如json or csv 返回。舉個例子 在瀏覽器中輸入 返回了 github 當前託管的python專案,以及最受歡迎的python倉庫資訊。分析 將請求傳送到github 中響應api呼叫的部分 searc...

API的理解和使用

2.1.1 全域性命令 檢視所有鍵 key 插入字串鍵值對 set hello world hello是key,world是value dbsize 鍵總數 插入列表型別的鍵值對 rpush mylist a b c d e f g dbsize直接獲取redis內建的鍵總數變數 o 1 keys ...