①-string類型
1.設(shè)置value
set username guoqf_online
2.獲取value
get username
3.incr做自增操作,可以對某個key的value進(jìn)行+1的操作
set age 20
incr age
get age
結(jié)果:21
4.decr做自減操作,可以對某個key的value進(jìn)行-1操作
set age 20
decr age
get age
結(jié)果:19
5.incrby指定自增的數(shù)字
set age 20
incrby age 20
get? age
結(jié)果:40
6.decrby指定自減的數(shù)字
set age 20
decrby age 20
get age
結(jié)果:0
7.keys 獲取redis里面所有的key
keys *
②-一般redis的key是如何設(shè)計的敲街?
思考:原先在mysql里面數(shù)據(jù)是如何存儲的慎冤?
答:使用it_user表(行和列的組合)
如果需要把上面mysql里面的表里面的數(shù)據(jù)存儲redis里面姆打,存儲的key該如何設(shè)計?
答:分如下幾步來操作:
a. 把mysql里面的表名獲取redis里面的key的前綴(it_user前綴)
b. 把mysql表里面的主鍵名稱放在上面的前綴后面肝谭,一般使用冒號分割(it_user:id)
c. 對應(yīng)記錄的主鍵值做key的第三步(it_user:id:1)
d.把mysql里面的其他的字段作為key的第四部分(it_user:id:1:username)
把上面mysql表里面的記錄保存在redis:
set it_user:id:1:username asion????設(shè)置key
get it_user:id:1:username? ? 獲取value
keys it_user:id:1*? ? 獲取用戶的其他字段信息
③-hash類型
redis里面的hash類型有點類似php里面的數(shù)組
1.hset 設(shè)置單個值
2.hget 獲取值
3.hmset 設(shè)置多個值
4.hmsetall 獲取hash全部的值
④-list類型
redis里面的list類型被稱為鏈表類型的概圖
1.lpush 向鏈表的頭部放入數(shù)據(jù)
2.rpush 向鏈表的尾部放入數(shù)據(jù)
3.lrange 獲取鏈表里面的數(shù)據(jù)
4.lpop在鏈表的左側(cè)彈出第一個數(shù)據(jù)
5.rpop在鏈表的右側(cè)彈出最后一個數(shù)據(jù)
鏈表數(shù)據(jù)結(jié)構(gòu)在實際項目中有哪些地方可以使用掘宪?
例如,現(xiàn)在后臺要統(tǒng)計一下最近登錄的10個用戶攘烛。
如果現(xiàn)在使用mysql來完成魏滚,形成這條sql來查詢數(shù)據(jù):
sql: select * from user order by logintime desc limit 10;
換成redis里面的鏈表實現(xiàn):
創(chuàng)建一個list類型,從鏈表的左側(cè)加入最近登錄的用戶主鍵id;當(dāng)里面的單元超過10個后坟漱,只需要把最右側(cè)的那個單元彈出即可鼠次。
⑤-set類型
redis里面的 set類型 被稱為? 無序集合類型
集合是數(shù)學(xué)里面常見的一個概念,可以理解是一類數(shù)據(jù)的集合芋齿。
集合滿足三個特點:
a. 無序性:集合里面的數(shù)據(jù)是沒有順序之分
b. 唯一性:集合里面的數(shù)據(jù)彼此是不能重復(fù)
c. 確定性:集合里面的數(shù)據(jù)的個數(shù)是確定
集合常見運(yùn)算:
交集(A∩B):集合公共的部分腥寇;例如上面集合A和集合B的交集是 2
并集(A∪B):集合全部的部分觅捆;例如上面集合A和集合B的并集是∩庖邸1 2≌こ础3
差集(A-B):A-B 代表的含義是元素在A里面出現(xiàn)掂摔,但是不能在B里面出現(xiàn);例如上面集合A-集合B結(jié)果是 1
1. sadd向集合里面添加元素
sadd value 1
sadd value 2
sadd value 3
2. smembers 獲取集合里面的元素
smembers value
結(jié)果:1? ? 2? ? 3
3. srem 移除集合里面的某個元素?
srem value 1
smembers value
結(jié)果:2? ? 3
4. spop 隨機(jī)的彈出集合里面的某個元素
spop value
->2
smembers value?
結(jié)果:3
集合的一個實際使用場景
一般redis里面的集合被用在社交類型的網(wǎng)站里面做好友關(guān)系展示赢赊。
例如實現(xiàn)好友的推薦乙漓,共同好友.....
⑥-zset類型
redis里面的zset類型被稱為有序集合,意味有序集合里面的元素是排好序的释移,也滿足唯一性和確定性
有序集合概圖:
1. zadd 添加元素
zadd? ? key????1? ? value1
zadd? ? key? ? 2? ? value2
zadd????key? ? 5? ? value3
zadd? ? key? ? 12? ? value4
2. zrange 獲取集合元素
zrange key 0 -1
結(jié)果:
->value1
->value2
->value3
->value4
3.獲取集合內(nèi)容的時候叭披,顯示權(quán)重信息
zrange? ? key? ? 0? ? -1? ? withscores