string舉例:
新增/修改乙個 string:
127.0.0.1:6379> set test 123
重新賦值:
127.0.0.1:6379>set test 456
查詢乙個string:
127.0.0.1:6379>get test
注:(integer) 6(返回字串的長度)
刪除乙個key:
127.0.0.1:6379>del test
返回字串長度
127.0.0.1:6379>strlen test
hash
是乙個string
型別的field
和value
的對映表
,可以看做是乙個
map表結構容器。
新增乙個
hash
:127.0.0.1:6379>hmset hashtest name xiaoming age 12
返回整個
hash
:127.0.0.1:6379>hgetall hashtest
1)"name"
2)"xiaoming"
3)"age"
4)"12"
返回hash
中的乙個字段:
127.0.0.1:6379>hget hashtest name
"xiaoming"
返回hash
中的多個個字段:
127.0.0.1:6379>hmget hashtest name age
1)"xiaoming"
2)"12"
刪除乙個
hash
中的字段:
127.0.0.1:6379>hdel hashtest age
127.0.0.1:6379>hgetall hashtest
1)"name"
2)"xiaoming"新增/
修改hash
中的字段:
127.0.0.1:6379> hset hashtest name xiaoxin
(integer) 0
127.0.0.1:6379> hgetall hashtest
1) "name"
2) "xiaoxin"
檢視指定鍵是否存在:
127.0.0.1:6379> hexists hashtest age
(integer) 0
注:返回整數1或
0。1表示雜湊包含該欄位。
0 表示雜湊不包含該欄位,或
key不存在。
補:檢視所有存在的鍵:
127.0.0.1:6379> keys *
清空所有資料庫資料:
127.0.0.1:6379> flushall
清空當前資料庫資料:
127.0.0.1:6379> flushdb
新增元素到列表頭:
127.0.0.1:6379>lpush listtest a b c
(integer)4
獲取列表指定範圍內的元素,
lrangelist_name index_start index_end 如:
127.0.0.1:6379> lrange listtest 0 2
1)"c"
2)"b"
3)"a"
新增元素到列表尾:
127.0.0.1:6379>rpush listtest 1 2 3
(integer)6
檢視key
對應的value
型別:127.0.0.1:6379>type listtest
list
通過索引獲取列表中的值:
127.0.0.1:6379>lindex listtest 3
"1"獲取列表長度:
127.0.0.1:6379>llen listtest
(integer)6
移除元素:
lremlisttest count value
count > 0 :
從表頭開始向表尾搜尋,移除與
value
相等的元素,數量為
count
。count < 0 :
從表尾開始向表頭搜尋,移除與
value
相等的元素,數量為
count
的絕對值。
count = 0 :
移除表中所有與
value
相等的值。
例子:127.0.0.1:6379>lrange list 0 2
1)"3"
2)"3"
3)"1"
127.0.0.1:6379>lrem list 1 3
(integer)1
127.0.0.1:6379>lrange list 0 2
1)"3"
2)"1"
刪除其中某條記錄(示例):
127.0.0.1:6379>lpush list qq ww ee qq qq tt
(integer)6
127.0.0.1:6379>lrange list 0 5
1)"tt"
2)"qq"
3)"qq"
4)"ee"
5)"ww"
6)"qq"
127.0.0.1:6379>lset list 3 flag
ok127.0.0.1:6379>lrange list 0 5
1)"tt"
2)"qq"
3)"qq"
4)"flag"
5)"ww"
6)"qq"
127.0.0.1:6379>lrem list 0 flag
(integer)1
127.0.0.1:6379>
set是
string
型別的無序集合。集合成員是唯一的,不允許重複
新增資料到集合:
127.0.0.1:6379> sadd settest 1 2 3 4 5
(integer) 5
返回集合資料:
127.0.0.1:6379> smembers settest
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
獲取集合數量:
127.0.0.1:6379> scard settest
(integer) 5
移除集合中的值:
127.0.0.1:6379> srem settest 5
(integer) 1
redis
有序集合和集合一樣也是
string
型別元素的集合
,且不允許重複的成員。
有序集合特點:
1.有序集合中每個元素都會關聯乙個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
2.有序集合的成員是唯一的,但分數(score)卻可以重複。
3.有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員
新增元素到集合:
127.0.0.1:6379> zadd sortset 1 a
(integer) 1
注:如果
value(a)
存在,更新分數,否則新增新
value
,分數可以相同。
返回指定元素的分數:
127.0.0.1:6379> zscore sortset a
"1"查詢元素,
zrange sortset start_index end_index:
127.0.0.1:6379> zrange sortset 0 1
1) "a"
移除集合中的元素:
127.0.0.1:6379> zrem sortset a
(integer) 1
根據分數區間查詢元素
127.0.0.1:6379> zcount zset 1 10
3.6 有序集合與列表(ext):
有序集合型別在某些方面和列表型別有些相似
:(1)二者都是有序的。
(2)二者都可以獲得某一範圍的元素。
但是二者有著很大的區別,這使得它們的應用場景也是不同的
:(1)列表型別是通過鍊錶實現的,獲取靠近兩端的資料速度極快,而當元素增多後,訪問中間資料的速度會較慢,所以它更加適合實現如「新鮮事」或「日誌」這樣很少訪問中間元素的應用。
(2)有序集合型別是使用雜湊表和跳躍表(skip list)實現的,所以即使讀取位於中間部分的資料速度也很快。
(3)列表中不能簡單地調整某個元素的位置,但是有序集合可以。
(4)有序集合要比列表型別更耗費記憶體。有序集合型別算得上是 redis的5種資料型別中最高端的型別。
(五)Redis基本型別 列表型別(List)
1 介紹 列表型別可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段。列表內部是使用雙向鍊錶實現的,獲取越接近兩端的元素速度越快。乙個列表型別鍵最多能容納2的32次方 1個元素。2 命令 1 向列表兩端增加元素 lpush key value value rpush...
redis五大基本型別 String
string 字串 指定配置檔案啟動redis,並連線,預設6379埠,看如何連線 root 5444 src redis server redis2.conf root 5444 src redis cli p 6380 127.0.0.1 6380 ping pong 記錄命令,先看 set g...
Redis 基本型別之 Set 型別
基本指令 sadd 127.0.0.1 6379 sadd myset hello 在集合中新增元素 integer 1 127.0.0.1 6379 sadd myset iron integer 1 127.0.0.1 6379 sadd myset egg integer 1 smembers...