標籤:
Redis基本操作-20150608【http://my.oschina.net/u/241255/blog/206991】 Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
Redis和普通的Key-Value結構不同,Redis的Key支援靈活的資料結構,除了strings,還有hashes、lists、 sets 和sorted sets等結構。正是這些靈活的資料結構,豐富了Redis的應用情境,能滿足更多業務上的靈活儲存需求。
Redis的資料都儲存在記憶體中,而且底層實現上是自己寫了epoll event loop部分,而沒有採用開源的libevent等通用架構,所以讀寫效率很高。為了實現資料的持久化,Redis支援定期重新整理(可通過配置實現)或寫日誌的方式來儲存資料到磁碟。
一、資料類型:
作為Key-value型資料庫,Redis也提供了鍵(Key)和索引值(Value)的映射關係。但是,除了常規的數值或字串,Redis的索引值還可以是以下形式之一:
●Lists (列表)
●Sets (集合)
●Sorted sets (有序集合)
●Hashes (雜湊表)
索引值的資料類型決定了該索引值支援的操作。Redis支援諸如列表、集合或有序集合的交集、並集、查集等進階原子操作;同時,如果索引值的類型是普通數字,Redis則提供自增等原子操作。
【setnx】
setnx name HongWan_new
由於原來name有一個對應的值,所以本次的修改不生效,且返回碼是0。
【setex】
設定key對應的值為string類型的value,並指定此索引值對應的有效期間。
例如我們添加一個haircolor= red的索引值對,並指定它的有效期間是10秒,可以這樣做:
redis 127.0.0.1:6379> setex haircolor 10 red
OK
redis 127.0.0.1:6379> get haircolor
"red"
redis 127.0.0.1:6379> get haircolor
(nil)
redis 127.0.0.1:6379>
可見由於最後一次的調用是10秒以後了,所以取不到haicolor這個鍵對應的值。
【setrange】
設定指定key的value值的子字串。
例如我們希望將HongWan的126郵箱替換為gmail郵箱,那麼我們可以這樣做:
redis 127.0.0.1:6379> get name
"[email protected]"
redis 127.0.0.1:6379> setrange name 8 gmail.com
(integer) 17
redis 127.0.0.1:6379> get name
"[email protected]"
redis 127.0.0.1:6379>
其中的8是指從下標為8(包含8)的字元開始替換
【mset】
一次設定多個key的值,成功返回ok表示所有的值都設定了,失敗返回0表示沒有任何值被設定。
redis 127.0.0.1:6379> mset key1 HongWan1 key2 HongWan2
OK
redis 127.0.0.1:6379> get key1
"HongWan1"
redis 127.0.0.1:6379> get key2
"HongWan2"
redis 127.0.0.1:6379>
【getset name HongWan_new】
【getrange name 0 6】【getrange name -7 -1】
【mget key1 key2 key3】
Redis基本操作-20150608