Redis系列 ——命令總結

Redis命令總結

1.查看所有key值

keys *

2.刪除key,支持批量刪除

del key1 key2...   //返回的結果是成功的個數

3.返回序列化的值

dump key

4.返回key是否存在

exists key1 key2...  //返回存在的個數

5.設置、取消過期時間(單位:秒、毫秒)

expire key seconds
pexpire key milliseconds

取消
persist key

使用場景:

1\color{red}{1、限時的優惠活動信息}
2\color{red}{2、網站數據緩存}
3\color{red}{3、手機驗證碼}
4\color{red}{4、限制網站訪客訪問頻率}

6.返回key的剩餘生存時間(單位:秒、毫秒)

ttl key	  //秒,永久返回-1,key不存在返回-2
pttl key  //毫秒

**7.添加key-value,取值 setnx\color{red}{setnx是解決分佈式鎖的方案} **

set <key> <value>

setnx <key> <value> //當key不存在的時候,爲key賦值

get key

8.查找key

keys pattern(通配符)
*代表查詢所有   ?代表一個符號

9.隨機返回key

randomkey

10.修改key的名稱

rename key newkey

11.返回key的類型

type key

12.從當前數據庫移動key到指定數據庫中

move key db

13.切換數據庫

select [index]

14.截取字符串

getrange key start end   //包括start end在內

15.獲取並賦值key的值

getset key value   //若key不存在,則返回nil;若存在,返回key的值並修改

strlen key //查看長度

16.自增自減\color{red}{(具有原子性)}

incr key [增量]  //執行增量操作,如果不存在則賦值0再加一

decr key [減量]

17.字符串拼接

append key value  //如果存在,就添加到最後

關於Hash的命令

  Redis hash是一個string類型的field和value的映射表, hash特別適合用,於存儲對象, Redis中每個hash可以存儲232-1鍵值對(40多億)可以看成具有KEY和VALUE的MAP容器,該類型非常適合於存儲值對象的信息,該類型僅佔據很少的內存空間(相比於JSON)。

1.賦值語法,可以一次賦值多個屬性

hset key field value [field2 value2]  //爲指定的key設定field/value

hmset key field value [field2 value2]

2.hash取值

hget key field  //根據field取值

hmget key field [field2]  //根據field取一系列的值

hgetall key  //獲取所有字段和值

3.獲取hash中的字段

hkeys key   //獲取hash表中的字段

hlen key   //返回字段的數量

4.刪除語法

hdel key field1 [field2]   //刪除一個或多個字段

Hash的應用場景(存儲一個用戶信息對象數據)

1、常用於存儲一個對象
2、 爲什麼不用string存儲一個對象?
  hash是最接近關係數據庫結構的數據類型,可以將數據庫一條記錄或程序中一個對象轉換成hashmap存放在redis中。用戶ID爲童找的key,存儲的value用戶對象包含姓名,年齡,生日等信息,如果用普通的key/value結構來存儲,主要有以下2種存儲方式:
  第一種方式將用戶ID作爲董找key,把其他信息封菜成一個對象以序列化的方式存儲,這種方式的缺點是,增加了序列化/反序列化的開銷,並且在需要修改其中一項信息時,需更把整個對象取回,並且修改操作需要對併發進行保護,引入CAS等復奈問題。
  第二種方法是這個用戶信息對蒙有多少成員就存成多少個key-value對兒,用用戶ID+對應屬性的名稱作爲唯一標識來取得對應屬性的值,雖然省去了序列化開銷和併發問題,但是用戶ID爲重複存儲,如果存在大量這樣的數據,內存浪費還是非常可觀的。總結:Redis提供的Hash很好的解決了這個問題, Redis的Hash實際是內部存儲的Value爲一個HashMlap,並提供了直接存取這個Map成員的接口.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章