redis常用命令

1、String類型:存儲的數據都是string類型的

1、set name fangzy ?//設置值 ? name=fangzy ? ? key為name ? ?value為fangzy

2、get name ? ?//獲取key為name的值 ?

3、mset name fangzy age 20 ?//設置多個值 ? name=fangzy ? age=20?

4、mget name age ? //get獲取name和age的值

5、getset name fangzy0723 ? //先獲取name的值,再給name設置新值fangzy0723

6、del name ? //刪除key為name的值

7、incr age ? //age的值每次自增1 ? ? ? ?( incr:值為數則自增 ? ?字符串報錯 ? ?值不存在先付0再自增)

8、incrby age 2 ? ? //age的值每次自增2

9、decr age ? //age值每次自減1

10、decrby age 2 ?//age的值每次自減2

11、append name 你好 ? //name的值后面追加你好

12、strlen name ?//獲取key為name的值的長度,不存在返回0

13、select 1 ?//選擇使用下標為1的數據庫 ? 默認使用的是下標為0的 ? ?redis默認是16個數據庫下標從0-15

2、Hash類型(散列類型):存儲的數據是map(也就是value是map類型),map中字段的值必須是string類型

1、hset ?user ?name ?fangzy ? ?//設置值 ? ?key:user ? ?value是個數組 ? 字段名:name ? 字段值:fangzy ? ? ? ?

2、hget user name ? ?//獲取key為user ?字段名為name的值 ??

3、hmset ?user name fangzy age 20 // 給user設置多個值

4、hmget user name age ?//獲取多個值

5、hgetall user ?//獲取key為user下的所有字段名、字段值

6、hdel user age //刪除key為user的age的值

7、hincrby user age 2 ?//key為user的age的字段值每次自增2

8、hexists user age ?//判斷user中是否含有age字段 ? ?1:有 ?0:沒有

9、hkeys user //獲取user中所有的字段名

10、hvals user ?//獲取user中所有的字段值

11、hlen user ?//獲取user中的字段的長度

3、List類型(列表類型) ? ?ArrayList:使用數組存儲數據,查詢快,增刪慢。LinkedList:使用雙向鏈表存儲數據,查詢慢,增刪快。redis采用LinkedList雙向鏈表存儲數據,向兩頭插值

1、lpush list_1 1 2 3 4 //從左邊向list_1插值 ? 插入之后的值的順序是 ?4 3 2 1

2、rpush list1 1 2 3 4 ?//從右邊向list_1插值 ?插入之后值的順序是1 2 3 4?

示例:lpush ? asd ? 1 2 3 4;

? ? ? ? ? ?rpush ?asd ? a b c ;

上面命令之后asd列表中的元素為4 3 2 1 a b c

3、lrange asd 0 2 ? //獲取列表asd中下標從0到2的片段 ? ?列表的下邊是從0 開始代表第一個 ? -1代表最后一個

4、lpop asd ? //從左邊彈出asd列表中的第一個元素,相當于刪除左邊第一個元素

5、rpop asd ?//從右邊彈出asd列表中的第一個元素,相當于刪除右邊第一個元素

6、 llen asd ?//獲取列表asd的元素個數

7、lrem asd count a ? //刪除asd列表中的a元素,count>0 ? 從左邊刪除第一個a ? ?count<0 ?從右邊刪除第一個a ? count=0 ? 刪除所有的a元素

8、lindex asd 0 ?//獲取指定下標的元素值 ? ? 獲取asd下標為0的元素

9、lset asd 0 a //設置指定下標的值 ? ? ?給asd列表中下標為0的元素重新賦值為a

4、set(集合)類型:無序不可重復

1、sadd set1 1 2 3 4 //給set1集合設置元素

示例:sadd set1 ?1 2 3 4 2 3 1 ? //集合中有1 2 3 4 四個元素(順序不確定)

2、srem set1 1 2 ?//刪除set1集合中值為1和2的元素

3、smembers set1 ? //獲取set1集合中所有的元素

4、sismember ?set1 1 //集合set1中是否存在1元素 ? ?返回值是1:存在 ? 0:不存在

5、scard set1 //獲取set1集合中的元素個數

6、spop set1 ?//從集合中彈出一個元素,因為集合石無須的,所以是隨機彈出一個元素

示例: sadd k1 ?1 2 3;

? ? ? ? ? ?sadd k2 ?2 3 4 ;

sdiff k1 k2 //獲取k1中有k2中沒有的元素(“1”) ?求差集

sinter k1 k2 //獲取k1和k2相同的元素 (“2”,“3”) 求交集

sunion k1 k2 ? //獲取k1、k2包含的所有的元素 (“1”,“2”,“3”,“4”) ?求并集

5、zset 有序集合 ?跟set集合的區別,每個元素多一個score ? 根據這個分數排序,分數值越大排名越靠前

1、zadd k score1 v1 score2 v2 ? ? //向有序集合添加元素 ? score是分數,排名用的,數值越大該元素排名越靠前

示例:zadd zset1 10 a ?9 b 11 c ? ??

插入之后zset的集合順序是:c a b

2、zscore zset1 a ? //獲取zset1集合a元素的分數

3、zrem zset1 a ? ? //刪除zset1集合中元素

4、zrange zset1 0 2 ? ?//獲取zset1集合下標從0-2的元素 ? (按分數從小到大)

5、zrevrange zset1? 0 2? //獲取zset1集合下標從0-2的元素? (按分數從大到小)

6、zrange zset1? 0 2 withscores ? ?//獲取zset1集合下標從0-2的元素并顯示分數

7、zrank zset1 a ? //獲取a在zset1集合中的排名(從小到大的排名)

8、zrevrank zset1 a ? //獲取a在zset1集合中的排名(從大到小的排名)

示例:

zadd goods 9 1002 10 1003? //插入商品編號1002? 銷量為9? ,1003銷量為10

zincrby goods 1 1002 ? //商品1002的銷量加1

zrverange goods 0 9 withscores ? //獲取銷量前十的商品

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最近學習redis,記錄一下 redis官網:redis.io 中文官網:http://www.redis.net...
    alexpdh閱讀 1,896評論 0 1
  • Redis提供了豐富的命令(command)對數據庫和各種數據類型進行操作,這些command可以在Linux終端...
    OzanShareing閱讀 536評論 0 2
  • 簡單命令: Redis鍵值形式: 語法:COMMAND KEY_NAME如:set name yl 設置名字為y...
    esileme閱讀 220評論 0 0
  • 這也不是我第一次讀劉震云的書了,他的前幾本書都是有一種樸實、貼近生活的感覺,人物也都是身邊的那些普普通通的人,故事...
    我是南不二呀閱讀 206評論 0 1
  • 看書學習健身已經有一年半了,隨著自己明白的事情越來越多,就越發覺得自己差得太遠,需要學習的東西還有好多,在這方面的...
    小堯兒閱讀 1,185評論 2 3