首頁技術文章正文

PHP培訓實戰(zhàn)教程之redis應用

更新時間:2017-05-26 來源:黑馬程序員php培訓學院 瀏覽量:

 

 
 
如何使用redis?
 
你一定要知道的是:redis的key名要區(qū)分大小寫,在redis中除了 和空格外,其他的字符都可以做為key名,且長度不做限制,不過為了性能考慮,一般key名不要設置的太長。redis功能強大,支持數(shù)據(jù)類型豐富,以下是redis操作命令大全,基本上涵蓋了redis所有的命令!
 
1、redis命令基本篇
 
1)、【 set key value 】 存入一個key和值。如:set myname reson
2)、【 get key 】 讀取一個key的值。
3)、【 del key 】 刪除一個key。
4)、【 del key1 key2 ... keyN 】 刪除多個key。如:del myname1 myname2
5)、【 exists key 】 判斷一個key是否存在。
6)、【 type key 】 查看key的類型。
7)、【 rename key keyNew 】 重命名key名。如:rename myname myname2
8)、【 dbsize 】 查看當前庫中的key的條數(shù)。
9)、【 expire key time 】 指定key的過期時間,單位為秒。如:expire myname 9(設置9秒后過期)
10)、【 ttl key 】 查看redis有多長時間過期,單位為秒。
11)、【 keys * 】 列出當前庫中所有的key名。
12)、【 keys a* 】 列出當前庫中所有以字符串“a"開頭的key。
13)、【 select db-index 】 選擇一個數(shù)據(jù)庫,如選擇第一個數(shù)據(jù)庫:select 0;選擇第二個 select 1;默認有16個數(shù)據(jù)庫,這個值可以在redis.conf中配置。
14)、【 flushdb 】 清掉當前庫中所有的key(生產(chǎn)環(huán)境下需謹慎操作)。
15)、【 flushall 】 清掉所有庫中全部的key(生產(chǎn)環(huán)境下需謹慎操作)。
16)、【 mset key1 value1 key2 value2 ... keyN valueN 】 一次性存入多個key和值。
17)、【 mget key1 key2 ... keyN 】 一次性讀取多個key。
18)、【 incr key 】 可以對key類型+1的操作(相當于編程語言里面的++),只能操作number型,操作字符串會報錯??蓪π轮颠M行操作。
19)、【 decr key 】 可以對key類型-1的操作(相當于編程語言里面的--),只能操作number型,操作字符串會報錯。
20)、【 incrby key num 】 同incr,對key的值加num,比如 incrby aa 10,對aa+10。
21)、【 decrby key num 】 同上,對key的值減num。
22)、【 append key value 】 對指定key的字符串進行追加,如果key為整形,會被轉為字符串。如aa的值為9,執(zhí)行append aa 10后,會變成910。
23)、【 substr key start end 】 對key進行截取start到end個字符。如aa的值為:abcdef,執(zhí)行substr aa 2 3后,返回“cd”。
 
2、redis鏈表類型(list)命令
 
24)、【 lpush key value 】 往隊列頭部插入一個元素
25)、【 rpush key value 】 從尾部插入一個元素
26)、【 lpop key 】 從隊列頭部刪掉一個元素
27)、【 rpop key 】 從隊列尾部刪掉一個元素,并返回被刪除元素的值
28)、【 llen 】 返回隊列的長度,即里面有多少個元素。不存在key返回0,不為隊列類型的key會返回報錯。
29)、【 lrange key start end 】 返回隊列從start到end之間的元素信息。
30)、【 ltrim key start end 】 截取一個隊列,只保留指定區(qū)間內的元素。
 
3、redis無序集合set類型命令
 
31)、【 sadd key vaule 】 往集合中插入一個元素,如果value值已存在集合中,則返回0,不會被重復插入。
32)、【 sinter key1 key2 ... keyN 】 取出n個key之間的交集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sinter key1 key2返回d,e。
33)、【 sunion key1 key2 ... keyN 】 取出n個key之間的并集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sunion key1 key2返回a,b,c,d,e,f。
34)、【 sdiff  key1 key2 】 取出n個key之間的差集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sdiff key1 key2返回a,b,c;反過來sdiff key2 key1返回f。
35)、【 smembers key 】 返回key集合中所有的元素,結果是無序的。
36)、【 sismember key value 】 查看value這個值是否在key集合中。存在返回1,不存在返回0。
37)、【 scard key 】 返回集合中有多少個元素。
38)、【 smove key1 key2 value 】 把value從key1中移到key2中去。
39)、【 srem key value1 value2 ... valueN 】 從key集合中刪掉某些元素。
 
4、redis有序集合sorted set命令
 
40)、【 zadd key v k 】 往key中添加一個元素,k為鍵,v為值。如:zadd artHits 99 12表示id為12的文章點擊量為99次。
41)、【 zrange key start end 】 根據(jù)v的值由小到大進行排序來獲得start到end之間的元素。
注:0表示第一個元素,-1表示最后一個元素,-2表示倒數(shù)第二個元素,以此類推,如果要獲取第一個到倒數(shù)第三個之間的元素,命令為:zrange key 0 -3。
42)、【 zrevrange key start end 】 同上,根據(jù)v的值由大到小進行排序來獲得start到end之間的元素??梢暂p松取出點擊量最高的前n篇文章。
43)、【 zremrangebyrank key start end 】 刪除集合中的元素。排序的方式為按照v由小到大的順序,如果要刪除key集合中的第一個值,則運行 zremrangebyrank artHits 0 0;刪除前3個值:zremrangebyrank artHits 0 2。
44)、【 zcard 】 返回key集合中元素的個數(shù)。
45)、【 zrank key k 】 返回值k在集合key中排第幾位,是按照v由小到大的順序。排第一名返回0,第二返回1,以此類推。
46)、【 zrevrank key k 】 同上,不同的是,按照v由大到小的順序。可以輕松取出點擊量最高的文章。
47)、【 zscore key k 】 取出集合key中鍵為k對應的值v。
48)、【 zrem key k 】 刪除集合中指定元素。
49)、【 zincrby key num k 】 給集合key中的元素k加上num,值針對整型。比如 zincrby artHits 3 12,給id為12的文章加上3個點擊量。此時zscore artHits 12的結果是99+3為102。
 
5、redis哈希hash類型命令
 
50)、【 hset key field value 】 設置hash field為指定值,如果key不存在,則先創(chuàng)建。
51)、【 hmset key field1 value1 ... fieldN valueN 】 同時設置多個值。
52)、【 hget key field 】  獲取指定的hash field
53)、【 hmget key field1 field1 ... fieldN 】 獲取指定的多個hash field
54)、【 hincrby key field num 】 將指定的hash field加上指定的值。
55)、【 hexists key field 】 查看指定field是否存在。
56)、【 hdel key field 】 刪除指定的hash field。
57)、【 hlen key 】 返回指定hash中field的數(shù)量。
58)、【 hkeys key 】 返回hash所有的field。
59)、【 hvals 】 返回hash中所有的value。
60)、【 hgetall key 】 返回hash中所有的field和value。


本文版權歸黑馬程序員php培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員php培訓學院
分享到:
在線咨詢 我要報名
和我們在線交談!