1. 程式人生 > >Redis數據類型的常用API以及使用場景

Redis數據類型的常用API以及使用場景

為什麽 tips 追加 緩存 計數 clas 自增 lin user

一、通用命令

1、keys 遍歷出所有的key

一般不在生產環境使用

技術分享圖片

2、dbsize key的總數

技術分享圖片

3、exists key

技術分享圖片

4、del key 刪除指定key-value

技術分享圖片

5、expire key secods 設置多少秒過期

ttl 還剩多少秒過期

技術分享圖片

persist 取消過期時間

技術分享圖片

6、type 返回key的類型

技術分享圖片

二、單線程

一個次只能執行一個命令

拒絕長慢命令(keys等)

為什麽單線程還這麽快

1、純內存(主要)

2、非阻塞IO

3、避免線程切換和競態消耗

三、數據類型

1、字符串

類型:可以存字符串、整型、二進制、json等

大小:可以存512M

場景:緩存、計數器

命令:

1.1、get、set、del

1.2、set k v 不管k是否存在,都設置

setnx k v k不存在才設置

set k v xx k存在才設置

1.3、mset 批量設置

mget 批量獲取

技術分享圖片

1.5

getset key newvalue 設置新的key並返回舊value

append key value 將value追加到舊的value

strlen key 返回字符串的長度(註意中文)

1.6

incrbyfloat 增加浮點數

getrange 獲取字符串制定下標所有的值

setrange 設置指定下標所對應的值

1.7、適合做計數器,單進程無競爭

incr 自增1,如果key不存在為1

decr 自減1,如果key不存在為-1

incrby 自增k,如果key不存在為k

decrby 自減key,如果key不存在為-k

技術分享圖片

使用場景:緩存應用

技術分享圖片

2、哈希

一個鍵對應多個鍵值的結構,可以理解為小redis

技術分享圖片

哈希的API操作都是以h開頭

2.1、hset、hget、hdel

技術分享圖片

技術分享圖片

2.2

hexists key是否存在field

hlen key中field的總數

2.3

hmget 批量獲取

hmser 批量設置

2.4

hgetall

2.5、hsetnx、hincrby、hincrbyfloat

技術分享圖片

使用場景

統計每個用戶個人主頁的訪問量

hincrby user:1:info pageview count

緩存儲存視頻基本信息

技術分享圖片

編程對比:

第一種:將整體數據序列化存進字符串

第二種:將數據分別存進字符串

第三種:將數據存進哈希

技術分享圖片

4、列表

有序、可重復、左右兩邊可以插入彈出

技術分享圖片

列表的API都以L開頭

4.1、增

rpush 從右邊插入

lpush 從左邊插入

linsert key before|after value newvalue在指定的值前後插入數據

技術分享圖片

4.2、刪

lpop 從左彈出

rpop 從右彈

lrem key count value 根據count值,從列表中刪除所有與balue相等的值

技術分享圖片

技術分享圖片

4.3、查

lrange

技術分享圖片

lindex

技術分享圖片

llen

技術分享圖片

4.4、改

lset

技術分享圖片

4.5、 查漏補缺

blpop

brpop

技術分享圖片

4.6、使用場景

微博時間軸

技術分享圖片

4.7、TIPS

1、棧

2、隊列

3、有固定數量的列表

技術分享圖片

5、集合

集合內不能重復、無序、支持集合間操作

技術分享圖片

技術分享圖片

5.1、集合內

技術分享圖片

技術分享圖片

使用場景技術分享圖片

可以用在點贊、抽獎中

5.2、集合間

技術分享圖片

使用場景:

共同關註、共同粉絲

6、有序集合

特點:

技術分享圖片

API

6.1、zadd 添加元素

技術分享圖片

6.2、zrem 刪除元素

技術分享圖片

6.3、zscore 獲取分數

技術分享圖片

6.4、zincrby 增加或減少分數

技術分享圖片

6.5、zcard 返回元素總個數

技術分享圖片

實例:

技術分享圖片

6.6、zrange 返回指定索引範圍內升序元素

技術分享圖片

6.7、zrangebyscore 返回制定分數範圍的升序元素

技術分享圖片

6.8、zermrangebyrank

技術分享圖片

6.9、zremrangbyscore 刪除指定分數的升序元素

技術分享圖片

使用場景:排行榜

Redis數據類型的常用API以及使用場景