Redis基礎數據結構&命令總結

整理總結一下Redis基礎命令和數據結構,忘記了方便查閱bash


1. 數據結構1-字符串(String)

能夠是保存字符串、整數和浮點數
數據結構

設值命令

set num 23 ex 10  //10秒後過時, px 10000 毫秒過時           
setnx name test  //不存在鍵name時,返回1且設置成功;存在的話失敗0           
set age 25 xx      //存在鍵age時,返回1成功複製代碼

獲值命令

get age //存在則返回value, 不存在返回nil複製代碼

批量設值

mset fruit apple num 5   # fruit apple 爲一組;num 5 爲一組複製代碼

批量獲取

mget fruit num address //返回apple  5, address爲nil複製代碼

字符串計數

incr age //必須爲整數自加1,非整數返回錯誤,無age鍵從0自增返回1
decr age //整數age減1
incrby age 2 //整數age+2
decrby age 2 //整數age-2
incrbyfloat score 1.1 //浮點型score+1.1複製代碼

append追加指令

set name hello
append name world //追加後成helloworld

注意: 
set age 34
append age 23   // 獲得 "3423"
incr age  // 獲得 3424複製代碼

字符串長度

set hello "世界"
strlen hello //結果6,每一箇中文佔3個字節複製代碼

截取字符串

set name helloworld
getrange name 2 4  //返回 llo複製代碼


2. 數據結構2 - 哈希(Hash)

哈希hash是一個string類型的field和value的映射表,hash特適合用於存儲對象app

命令 

hset key field value複製代碼

設值

hset user:1 name ying        //成功返回1,失敗返回0複製代碼

取值

hget user:1 name              //返回ying複製代碼

刪值

hdel user:1 age               //返回刪除的個數複製代碼

計算個數

hset user:1 name james
hset user:1 age 23              
hlen user:1    //返回2,user:1有兩個屬性值複製代碼

批量設值

hmset user:2  name ying  age 23 sex male //返回OK複製代碼

批量取值

hmget user:2 name age sex   //返回三行:ying 23 male複製代碼

判斷field是否存在

hexists user:2 name //若存在返回1,不存在返回0複製代碼

獲取全部field

hkeys user:2            // 返回name age sex三個field複製代碼

獲取user:2全部value

hvals user:2     // 返回ying 23 male複製代碼

獲取user:2全部field與value

hgetall user:2 //name age sex james 23 boy值複製代碼

增長1

hincrby user:2 age 1      //age+1

hincrbyfloat user:2 age 2   //浮點型加2複製代碼


3. 數據結構3-列表<list>

用來存儲多個有序的字符串,一個列表最多可存2的32次方減1個元素網站


添加命令

rpush ying c b a //從右向左插入cba,返回值3複製代碼

lrange ying 0 -1 //從左到右獲取列表全部元素返回 c b a複製代碼

lpush key c b a //從左向右插入cba複製代碼

linsert ying before b teacher 
//在b以前插入teacher, after爲以後,使用lrange ying 0 -1 查看:c teacher b a複製代碼

查找命令:ui

lrange key start end //索引下標特色:從左到右爲0到N-1

         
lindex ying -1 //返回最右末尾a,-2返回倒數第二個

         
llen ying        //返回當前列表長度

         
lpop ying       //把最左邊的第一個元素c刪除

         
rpop ying      //把最右邊的元素a刪複製代碼


4. 數據結構4-集合<set>

保存多元素,與列表不同的是不容許有重複元素,且集合是無序,一個集合最多可存2的32次方減1個元素,除了支持增刪改查,還支持集合交集、並集、差集;spa


exists user     //檢查user鍵值是否存在 
sadd user a b c //向user插入3個元素,返回3 
sadd user a b   //若再加入相同的元素,則重複無效,返回0 
smember user //獲取user的全部元素,返回結果無序  
srem user a  //返回1,刪除a元素 
scard user   //返回2,計算元素個數複製代碼


5. 數據結構5-有序集合(ZSET)

經常使用於排行榜,如視頻網站須要對用戶上傳視頻作排行榜,或點贊數與集合有聯繫,不能有重複的成員code


zadd key score member [score member......]  

zadd user:zan 200 james //james的點贊數1, 返回操做成功的條數1  
zadd user:zan 200 james 120 mike 100 lee// 返回3  
zadd test:1 nx 100 james  //鍵test:1必須不存在,主用於添加  
zadd test:1 xx incr 200 james  //鍵test:1必須存在,主用於修改,此時爲300  
zadd test:1 xx ch incr -299 james //返回操做結果1,300-299=1     
zrange test:1 0 -1 withscores //查看點贊(分數)與成員名    
zcard test:1     //計算成員個數, 返回1複製代碼


6. Redis全局命令

查看全部鍵

keys *  複製代碼

鍵總數 

dbsize       //2個鍵,若是存在大量鍵,線上禁止使用此指令複製代碼

檢查鍵是否存在

exists key  //存在返回1,不存在返回0複製代碼

刪除鍵

del key      //del hello school, 返回刪除鍵個數,刪除不存在鍵返回0複製代碼

鍵過時

expire key seconds        //set name test  expire name 10,表示10秒過時               
ttl key                   // 查看剩餘的過時時複製代碼

鍵的數據結構類型

type key             // type hello  返回string,鍵不存在返回none複製代碼
相關文章
相關標籤/搜索