1、啟動Redis
2、Redis所支持的數據結構
2.1、Redis常用操作
2.2、String類型及操作
2.3、Hash類型及操作
2.4、List類型及操作
2.5、Set類型及操作
2.6、Zset類型及操作
首先進入到解壓后的Redis目錄
然后開啟Redis服務器的daemon啟動程序,命令:redis-server
最后開啟Redis命令行操作工具,命令:redis-cli (若需要支持輸入中文則命令:redis-cli --raw)
Redis允許的value數據結構類型有5種:String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合)。
再講5中數據結構的操作命令前先歸納一下:
- 增加操作:String(set、mset),List(lpush 、rpush),Set(sadd),Hash(hset、hmset),Zset(zadd)
- 刪除操作:String(del),List(lpop、rpop),Set(srem,spop),Hash(Hdel),Zset(zrem)
- 查詢操作:String(get),List(lrange),Set(smembers),Hash(hkeys,hvals,hgetall),Zset(zrange)
- 返回長度操作:List(llen),Set(scard),Hash(hlen),Zset(zcard)
select number(選擇數據庫命令)
keys *(查看當前redis庫中所有鍵)
keys xx*(查看xx開頭的所有鍵)
exists key(查看鍵是否存在)
del key(刪除此key及其對應的value)
expire key time(為key設置一個過期時間time(s),當到了過期時間時,自動刪除鍵值)
persist key(移除key的過期時間)
ttl key(查詢key的剩余過期時間,若沒有設置過期時間為-1)
move key number(將一個鍵移到其他number庫中)
dbsize(返回當前庫有多少key)
flushdb (刪除當前庫所有key)
rename key1 key2(將key1重命名key2)
type key (返回key的類型)
- String類型是最簡單的類型,可以保存二進制字節序列。從內部看是一個byte數組,最大上限是1G字節。
- 用來存儲三種類型的值:1.二進制序列字符串。 2.整型數據。 3.浮點數據。
操作命令:
set key value(添加或者更改key對應的value)
get key(讀取key對應的value)
del key(刪除此key及其對應的value)
setnx key value(若沒有此鍵則添加數據,有則返回0。setnx的意思是set not exists,若不存在則添加)
setex key existstime value(設置鍵值對並指定有效期)
setrange key index value (從以前value的第index開始替換為新設定的值)
mset key1 value1 key2 value2...(一次性設置多個鍵值)
msetnx key1 value1 key2 value2...(若其中任意一個鍵存在都添加失敗)
getset key value(返回舊值並設置一個新值)
getrange key offset1 offset2(取鍵對應值的子字符串)
mget key1 key2 key3....(獲取多個值,若無值返回nil)
incr key(為鍵對應的值進行加1操作,key不存在時設置為0)
incrby key number(和incr類似,若無key則創建一個key)
append key value(給指定字符串在末尾添加新值)
strlen key (取出指定key的value長度)
操作命令:
hkeys hash(看hash中所有鍵)
hvals hash(查看hash中所有值)
hgetall hash(找hash中所有鍵和值)
hset hash field value(在hash中添加一個字段)
hsetnx hash field value(設置一個字段,若存在此字段返回0)
hmset hash field1 value1 field2 value2....(同時設置多個多個字段)
hget hash field(獲取hash中指定字段)
hmget hash field1 field2...(取hash中多個字段值)
hincrby hash field number(給字段加上指定值)
hexists hash field (測試字段是否存在)
hlen hash(返回hash的field數量)
hdel hash field(刪除hash某個字段)
- list在Redis存儲為有序的字符串序列,其實就是每個子元素都是string類型的雙向鏈表。最大長度為2^32。
操作命令:
lpush list value (從list頭部插入值)
rpush list value(從list尾部插入值)
lrange list 0 -1 (查詢list中所有值)
linsert list before(after) oldvalue newvalue (在list中的指定的值之前或者之后插入一個值)
lset list offset value (設定list中指定下標的元素值)
lrem list number value(從list頭部順序刪除number個和value相同的值)
ltrim list offset1 offset2 (保留在offset1 offset2中的所有數據,其他刪除)
lpop list (刪除list頭部,並返回刪除元素)
rpop list (刪除list尾部,並返回刪除元素)
rpoplpush(刪除第一個list的尾部,並添加到第二個list的頭部,返回此元素)
lindex list index (返回list中index下標的元素)
llen list (返回list對應長度)
- 是一個字符串序列,set 內部使用hash表保持唯一性。用來做交集、並集、補集方便。
操作命令:
sadd set member(向set中添加元素,重復添加返回0)
smembers set(查詢set中所有元素)
srem set member(在set中刪除member,沒有則返回0)
spop set (隨機返回並刪除set中的一個元素)
srandmember set(隨機返回一個set中的元素,但不刪除)
sdiff set1 set2 (返回set1對set2的補集)
sdiffstore set1 set2 set3(返回set2對set3的補集給set1)
sinter set1 set2(返回set1和set2的交集)
sunion set1 set2(返回set1和set2的並集)
sunionstore set1 set2 set3(set2和set3的並集結果存放在set1中)
smove set1 set2 member(從set1中移動member進入set2)
scard set(返回set元素個數)
sismember set member(判斷set中是否有member有返回1,無返回0)
- 在set基礎上加了一個順序屬性。Zset中每個成員都有一個score關聯,通過score來為集合中的成員從大到小排序。
- 經常作為索引使用。
操作命令:
zadd zset score member(向zset中添加成員,若member存在則根據score更新該元素順序)
zrange zset 0 -1(查詢所有成員)
zrange zset 0 -1 withscores(查詢zset中所有分數和成員,按分數從小到大)
zrevrange zset 0 -1 withscores(查詢zset中所有分數和成員,按分數從大到小)
zrem zset member(刪除元素member)
zincrby zset score member(對member 的分數增加score)
zrank zset member (返回member在zset中的從小到大排名)
zrevrank zset member(返回member在zset中的從大到小排名)
zcount zset score1 score2(計算了分數在score1和score2間元素的個數)
zcard zset (返回集合中元素的個數)
zscore zset member(返回元素對應的score)
zremrangebyrank zset offset1 offset2(刪除索引offset1到offset2之間的元素)
zremrangebyscore zset score1 score2(刪除分數范圍之間的元素)