二:Redis入門步驟(五大資料型別常用操作)
1. 開啟一個 cmd 視窗 使用cd命令切換目錄到 C:\redis 執行 redis-server.exe redis.windows.conf
2.啟動:
$ redis-server
3.檢視是否啟動:
$ redis-cli
4.測試速度
redis-benchmark
5.檢視單個庫的大小
dbsize
6.把當前所在庫的資料羅列出來
keys*
7.移動到2號庫
select 2
8.把所有庫的資料刪除
flushall
9.判斷庫中是否存在鍵為k1的資料
existis k1
10.將鍵為k1的資料移動到2號庫中
move k1 2
11.把當前庫的資料刪除
flushdb
12.設定k1過期時間
expire k1 10
13.檢視k1過期時間-1為永不過期,-2為已過期
ttl k1
五大資料型別:
String:append,strlen,incr,decr,incrby,decrby,getrange,setrange,setex,setnx,mset,mget,msetnx
1.對k1拼接字串:append k1 123456
2.檢視k1當前字串數:strlen k1
3.incr,decr,incrby,decrby ---只能是數字
incr k1 //k1的值逐漸加1
decr k1 //k1的值逐漸減1
incrby k1 2 //k1逐漸加2
decrby k1 2 //k1逐漸減2
4.getrange,setrange
getrange k1 0 -1 //相當於getrange k1 讀取所有
getrange k1 0 3 //讀取k1的值中0到3的字串 包括3
setrange k1 0 xxx //設定k1從0字元開始3位的值
5.setex設定過期時間 setnx如果不存在建立
setex k1 10 //設定ki1 過期時間10秒
setnx k11 qwer //如果k11不存在則建立,存在則無法建立成功
6.mset 合併,getset合併取, msetnx不存在則合併,只要存在一個就失效
mset k1 v1 k2 v2 k3 v3 //k1 k2 k3合併
mget k1 k2 k3 //取上述設定的
msetnx k5 v5 k6 v6 //如果k5和k6都沒有的話可以建立成功,只要k5或者k6有一個存在則無法建立
List:lpush,rpush,lrange,lpop,rpop,lindex,llen,lrem,trim,rpoplpush,lset,linsert
lpush/rpush/lrange:
lpush list01 1 2 3 4 5 //先壓的在低下,顯示的時候為5 4 3 2 1 rpush則相反
lrange:lrange list01 0 -1 //遍歷list01連結串列的所有元素
lpop/rpop: lpop list01 //彈出list01最上面元素(索引為0的元素),rpop則為彈出最下面元素
lindex: lindex list01 2 //取list01連結串列索引為2的元素 為3
llen: llen list01 //連結串列長度
lrem key:lrem list01 1 2 //移除連結串列list01中值為2的元素,移除1個
ltrim key: ltrim list01 0 2 //擷取連結串列元素從索引0到2
rpoplpush:rpoplpush list01 list02 //將list01最下面元素(索引值最大元素)移到list02連結串列的最頂層(索引值最小)
lset key index value:lset list01 0 2//設定list01索引為0的值為2
linsert key before/after
Set:sadd,smembers,sismember,scard,srem,srandmember,spop,smove,sdiff,sinter,sunion
sadd/smembers/sismember:
sadd set01 1 2 3 //往set中新增值
smsmbers set01 //檢視set01中的所有值
sismember set01 1 //判斷set01中1的值是否存在
scard:scard set01 //檢視set01裡面的元素個數
srem key value: srem set01 1 //移除set01中值為1的元素
srandmember key: srandmember set01 //隨機取出set01中的一個元素
spop key:spop set01 //隨機彈出set01中的一個元素
smove:smove set01 set02 2 //將set01中的值為2的元素新增到set02中
sdiff: sdiff set01 set02 //取兩個集合的差值,如果set01為 1 2 3 set02為2 4 5 6 則結果為1 3
sinter:sinter set01 set02 //取兩個集合的交集
sunion:sunion set01 set02//取兩個集合的並集
Hash:hset,hget,hmset,hmget,hgetall,hdel,hlen,hexists,hkeys,hvals,hincrby,hincrbyfloat,hsetnx
hset:hset user id 1 //建立user物件,id為1
hget:hget user id //獲取user物件的id
hmset:hmset user id 1 name zhf age 18 //建立user物件,新增屬性id,name,age
hmget:hmget user id name age //獲取user物件的id,name,age屬性
hgetall:hgetall user //獲取user物件的所有屬性
hdel:hdel user id//刪除user物件的id屬性
hlen:hlen user//判斷user物件有多少屬性
hexists:hexists user id //判斷user物件是否有id屬性
hkeys:hkeys user //獲取user物件的屬性集
hvals:hvals user //獲取user物件的屬性值集
hincrby:hincrby user id 1 //user物件的id屬性加1
hincybyfloat:hincrby user id 0.1 //user物件的id屬性按照浮點數型別增加
hsetnx:hsetnx user gender 男 // 對user物件新增屬性,如果屬性存在則無法新增,不存在則可以新增
Zset:zadd,zrange,zrem,zcard/zcount/zrank/zscore,zrevrank,zrevrange,zrevrangebyscore
zadd:zadd salary 3000 peter 3500 tom 4000 nick//往有序列表新增資料(不可新增重複資料)
zrange:zrange salary 0 -1 withscopes //顯示所有成員和薪水
zrem:zrem salary nick // 刪除成員nick
zrank:zrank salary nick //顯示nick的薪水排名,越低則排名越低
zscore:zscore salary nick //顯示nick的薪水
zrevrank:zrevrank salary nick //顯示nick的薪水排名,越低排名越高
zrevrange:zrevrange salary 0 -1 //顯示所有成員按照正序排列
zrevrangebyscore:zrevrangebyscore salary 4000 3500 //薪水在3500到4000的正序排列