redis基本命令學習

來源:互聯網
上載者:User

標籤:

看到大家都需要redis,而我工作卻沒怎麼接觸過,特來學習,現在先熟悉指令,我通過redis中文的 互動教程(interactive tutorial)來學習的。

1.redis是key-value儲存的,放在記憶體中,並在磁碟持久化的資料結構儲存系統,它可以用作資料庫、緩衝和訊息中介軟體。 

通過set key value來儲存,通過get key來擷取值

set key value:設定key的值,若存在則覆蓋
setnx key value:SET if Not eXists,若存在則不操作。MSET key1 value1 key2 value2 ... keyN valueN:設定這些key的值,若存在則覆蓋get key:擷取key對應的值MGET key1 key2 ... keyN:擷取這些key對應的值MSETNX key1 value1 key2 value2 ... keyN valueN:同mset,但如果其中一個key已經存在了,則都不設定。這些操作都是原子的。
EXISTS key:查看是否存在該元素。
GETSET key value:擷取該元素的值,並給該元素設定新值。(通常和incr搭配使用,比如一個mycount一直incr,然後達到某些情況需要清零,清零之前需要知道mycount的值).
del key:刪除元素
RENAME oldkey newkey:重新命名

2.redis提供原子自增操作incr,用來防止多線程並發出現資料錯誤。
incr key:原子的+1;DECR key:原子的-1;
DECRBY key integer:原子的-integer;
INCRBY key integer:原子的+integer

3.刪除操作:del.若資料不存在返回(nil)

4.redis可以定時儲存,即設定幾秒後刪除該變數

expire key 多少秒:設定多少秒後到期;  ttl key:Time To Live,查看還可以存活多久,-2表示key不存在;-1表示定時任務消失,永久儲存。

 

EXPIRE key seconds:設定該元素多少秒後失效PEXPIRE key milliseconds:設定該元素多少毫秒後失效TTL key:查看還可以存活多少秒,-2表示key不存在,-1表示永久儲存
SETEX key seconds value:等價於先設定變數再設定逾時,即在緩衝中使用:儲存的同時設定逾時時間,這個操作是原子的

 

     ->->->

5.儲存有序隊列:list
rpush keyList value:向keyList添加元素,向後加,r表示右邊

lpush keyList value:向keyList左邊添加元素,LPUSH puts the new value at the start of the list.
lrange keyList beginIndex endIndex:擷取keyList的元素,用兩端的索引取出子集,endIndex=-1則表示全部取出

這裡就要瞭解redis資料結構的儲存類型, 字串(strings), 散列(hashes), 列表(lists),集合(sets), 有序集合(sorted sets) 與範圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。 Redis 內建了 複製(replication),LUA指令碼(Lua scripting),LRU驅動事件(LRU eviction),事務(transactions) 和不同層級的 磁碟持久化(persistence), 並通過 Redis哨兵(Sentinel)和自動 分區(Cluster)提供高可用性(high availability)。

現在學習list:

->->->

llen keyList :擷取keyList的長度大小lpop keyList:取出並移除keyList第一個元素,左邊的元素rpop keyList:取出並移除keyList最後一個元素,右邊的元素
LINDEX key index:擷取該索引下的元素。
lrem key count value:刪除count個value。(count為正數,從頭開始,刪除count個value元素;count為負,則從尾部向頭刪除|count|個value元素;count為0,則所有的元素為value的都刪除)
LSET key index value:設定索引為index下的元素為value.超出索引範圍報錯。
LTRIM key start end:清空索引在start 和end之外的元素,索引從0開始,兩端保留,兩端之外的清空。
RPOPLPUSH srckey dstkey:源隊列srckey,目標隊列dstkey,將srckey的最後一個移除,並放到dstkey的第一個。

-》-》

6.無序且唯一集合set

和java中list與set的區別一樣。這裡的set無序且值唯一。

The next data structure that we‘ll look at is a set. A set is similar to a list, except it does not have a specific order and each element may only appear once. Some of the important commands in working with sets are SADD, SREM, SISMEMBER, SMEMBERS and SUNION.

sadd key value : 向set添加元素srem key value :從set中移除元素smembers key : 取出所有set元素SISMEMBER key value: 查看value是否存在set中SUNION key1 key2 ... keyN:將所有key合并後取出來,相同的值只取一次
scard key : 擷取set中元素的個數
SDIFF key1 key2 ... keyN:擷取第一set中不存在後面幾個set裡的元素。
SDIFFSTORE dstkey key1 key2 ... keyN:和sdiff相同,擷取key1中不存在其他key裡的元素,但要儲存到dstkey中。
SINTER key1 key2 ... keyN:取出這些set的交集
SINTERSTORE dstkey key1 key2 ... keyN:取出這些key的交集並儲存到dstkey
SMOVE srckey dstkey member:將元素member從srckey中轉移到dstkey中,這個操作是原子的。

-》-》-》

7.有序集合sorted set

和set一樣,唯一。但z多了個score用來排序。所以命令又像list一樣:

ZADD key score member:向有序set中添加元素member,其中score為分數,預設升序;
ZRANGE key start end [WITHSCORES]:擷取按score從低到高索引範圍內的元素,索引可以是負數,-1表示最後一個,-2表示倒數第二個,即從後往前。withscores可選,表示擷取包括分數。
ZREVRANGE key start end [WITHSCORES]:同上,但score從高到低排序。
ZCOUNT key min max:擷取score在min和max範圍內的元素的個數
ZCARD key:擷取集合中元素的個數。
ZINCRBY key increment member:根據元素,score原子增加increment.
ZREMRANGEBYSCORE key min max:清空集合內的score位於min和max之間的元素。
ZRANK key member:擷取元素的索引(照score從低到高排列)。
ZREM key member:移除集合中的該元素
ZSCORE key member:擷取該元素的score
8.Object Storage ServiceHashes

可以儲存物件,比如人,編號,姓名,年齡等

HSET key field value:key是對象名,field是屬性,value是值;HMSET key field value [field value ...]:同時設定多個屬性HGET key field:擷取該對象的該屬性HMSET key field value [field value ...]:擷取多個屬性值HGETALL key:擷取對象的所有資訊HKEYS key:擷取對象的所有屬性HVALS key:擷取對象的所有屬性值HDEL key field:刪除對象的改屬性HEXISTS key field:查看對象是否存在該屬性HINCRBY key field value:原子自增操作,只能是integer的屬性值可以使用;HLEN key: Return the number of entries (fields) contained in the hash stored at key.擷取屬性的個數。

->->

 

redis基本命令學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.