redis--數據類型

redis支持五種數據類型:

  1. string(字符串)
  2. hash(哈希)
  3. list(列表)
  4. set(集合)
  5. zset(sorted set:有序集合)

 

string(字符串)

  string時redis最基本的類型,一個key對應一個value

  string類型是二進制安全的,也就是redis可以包含任何數據。比如jpg圖片或者序列化的對象

  string是redis最基本的數據類型,string類型的值最大能存儲512MB

127.0.0.1:6379> set runood 'william林濤'
OK
127.0.0.1:6379> get runood
william林濤
127.0.0.1:6379> 

 

  調用了redis的set和get命令。這裏面的鍵是runood,對應的值就是‘runood’ 

  redis字符串命令:

 1

 set key value

  設置指定key的值

 2

 get key

  獲取指定key值

 3

 getrange key start end

  返回key中字符串值的字節符

 4

 getset key value

  將給定key的值設爲value,並返回key的舊值(old value)

 5

 getbit key offset

  對key所存儲的字符串值,獲取指定偏移量上的位(bit)

 6

 mget key1[key2...]

  獲取所有(一個或者多個)給定key的值

 7

 setbit key offset value

  對key所存儲的字符串值,設置或清除指定偏移量上的位(bit)

 8

setex key seconds value

  將值value關聯到key,並將key的過期時間設爲seconds(以秒位單位) 

 9

setnx key value

  只有key不存在時設置key的值 

 10

 setrange key offset value

  用value 參數賦寫給定key所存儲的字符串值,從偏移量offset開始

 11

 strlen key

  返回key所存儲的字符串值的長度

 12

 mset key value [key value...]

  同時設置一個或多個key-value對

 13

 msetnx key value [key value...]

  同時設置一個或者多個key-value對,當且僅當所有給定key都不存在

 14

 psetex key milliseconds value

  以毫秒位單位設置key的生存時間,而不是像setex命令那樣,以秒爲單位

 15

incr key

  將key中儲存的數字增量加一 

 16

 incrby key increment

  將key所存儲的值加上給定的增量值(increment)

 17

 incrbyfloat key increment

  將key所儲存的值加上給定的浮點增量值

 18

desc key

  將key中儲存的數字值減一

 19

 desrby key descrement

  key所儲存的值減去給定的減量值(descrement)

 20

 append key value

  如果key已經存在並且是一個字符串,append命令將指定的value追加到該key原來值(value)的末尾

   


hash(哈希)

  redis hash是一個鍵值對集合

  redis hash是一個string類型的field和value的映射表,hash適合用於存儲對象

  當你再次使用之前使用過的runood的時候因爲你已經使用過了,所以需要先將之前的key刪掉

127.0.0.1:6379> del runood
1

  

127.0.0.1:6379> hmset runood field1 'hello' field2 'world'
OK
127.0.0.1:6379> hget runood field1
hello
127.0.0.1:6379> hget runood field2
world
127.0.0.1:6379> 

  這裏面用到了redis的hmset和hget命令,hmset設置了兩個field=>value對,hget獲取相應的field對應的value

  每個hash可以存儲 232 -1 鍵值對(40多億)。

 

  redis hash命令

 

   更多命令:https://redis.io/commands

 

 

list(列表)

  redis列表是簡單的字符串列表,按照插入的順序排序。你可以選擇添加一個元素到列表的頭部(左邊)或者尾部(右邊)。

127.0.0.1:6379> del runood
1
127.0.0.1:6379> lpush runood redis
1
127.0.0.1:6379> lpush runood mongodb
2
127.0.0.1:6379> lpush runood mysql
3
127.0.0.1:6379> lrange runood 0 10
mysql
mongodb
redis
127.0.0.1:6379> 

 

  列表最多可存儲 232 - 1 元素 (4294967295, 每個列表可存儲40多億)。

  

  redis列表命令:

  

 

 

 

 

 

Set(集合)

  redis的set是string類型的無序集合

  集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)

 

  sadd命令

  添加一個string元素到key對應的set集合中,成功就返回1,如果元素已經在集合中就返回0

sadd key member
127.0.0.1:6379> del runood
1
127.0.0.1:6379> sadd runood redis
1
127.0.0.1:6379> sadd runood mongodb
1
127.0.0.1:6379> sadd runood mysql
1
127.0.0.1:6379> sadd runood redis
0
127.0.0.1:6379> smembers runood
mysql
mongodb
redis
127.0.0.1:6379> 

  在上面的例子中redis添加了兩次,但根據集合內元素的唯一性,第二次插入的元素將被忽略

  集合中最大的成員數爲 232 - 1(4294967295, 每個集合可存儲40多億個成員)。

  

  redis集合(Set)

  

 

 

 

zset(sorted set:有序集合)

  redis zset和set一樣也是string類型元素的集合,且不允許重複的成員

  不同的是每個元素都會關聯一個double類型的分數,redis正式通過分數來爲集合中的成員進行從小到大的排序

  zset的成員是唯一的,但分數(score)卻可以重複

  

  zadd命令:添加元素到集合,元素在集合中存在的話就更新對應的分數(score)

zadd key score member

 

127.0.0.1:6379> del runood
1
127.0.0.1:6379> zadd runood 0 redis
1
127.0.0.1:6379> zadd runood 0 mongodb
1
127.0.0.1:6379> zadd runood 0 mysql
1
127.0.0.1:6379> zadd runood 0 redis
0
127.0.0.1:6379> zrangebyscore runood 0 10
mongodb
mysql
redis
127.0.0.1:6379> 

 

  redis有序集合命令

  

 

 

 

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