整理總結一下Redis基礎命令和數據結構,忘記了方便查閱bash
能夠是保存字符串、整數和浮點數
數據結構
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複製代碼
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複製代碼
哈希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複製代碼
hexists user:2 name //若存在返回1,不存在返回0複製代碼
hkeys user:2 // 返回name age sex三個field複製代碼
hvals user:2 // 返回ying 23 male複製代碼
hgetall user:2 //name age sex james 23 boy值複製代碼
hincrby user:2 age 1 //age+1
hincrbyfloat user:2 age 2 //浮點型加2複製代碼
用來存儲多個有序的字符串,一個列表最多可存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刪複製代碼
保存多元素,與列表不同的是不容許有重複元素,且集合是無序,一個集合最多可存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,計算元素個數複製代碼
經常使用於排行榜,如視頻網站須要對用戶上傳視頻作排行榜,或點贊數與集合有聯繫,不能有重複的成員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複製代碼
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複製代碼