歡迎訪問:zrxJuly’s Bolg
Redis支持5種數據類型:
- string:字符串
- hash:哈希
- list:列表
- set: 集合
- zset:有序集合(sorted set)
String:字符串
string是Redis最基本的類型,一個key對應一個value;
string類型是二進制安全的,即Redis的string可包含任何數據。比如jpg圖片或者序列化的對象。
string類型是Redis最基本的數據類型,string類型的值最大能存儲512MB。
語法格式:
set key value
get key
127.0.0.1:6379> set name 'zrx'
OK
127.0.0.1:6379> get name
"zrx"
Redis 命令不區分大小寫。上面例子 鍵爲
name
,值爲zrx
。使用了set先給name賦值爲’zrx’,再使用了get取鍵對應的值。
Hash:哈希
Hash是鍵值對集合,適用於存儲對象。Redis哈希(散列)是字符串字段和字符串值之間的映射。
語法格式:
hmset key field value
hget key field
127.0.0.1:6379> hmset myhash field1 "hello" field2 "world"
OK
127.0.0.1:6379> hget myhash field1
"hello"
127.0.0.1:6379> hget myhash field2
"world"
127.0.0.1:6379> hmset myhash name "zrx" age "twenty"
OK
127.0.0.1:6379> hget myhash name
"zrx"
127.0.0.1:6379> hget myhash age
"twenty"
hmset 設置field=>value
對,hget獲取對應field對應的value。
上面例子中field=>value
對有:
field1=>"hello"
,field2=>"world"
,name=>"zrx"
,age=>"twenty"
。
每個hash可以存儲232-1個鍵值對。
List:列表
Redis列表是簡單的字符串列表,按照插入順序排序。可以添加一個元素到列表的頭部(左邊)或尾部(右邊)。
語法格式:
lpush key member
127.0.0.1:6379> lpush list1 good
(integer) 1
127.0.0.1:6379> lpush list1 study
(integer) 2
127.0.0.1:6379> lpush list1 up
(integer) 3
127.0.0.1:6379> lrange list1 0 2
1) "up"
2) "study"
3) "good"
列表最大長度爲232-1個元素。
Set:集合
Redis的set是string類型的***無序*** 集合。集合是通過哈希表實現的,因此添加、刪除、查找的複雜度都是O(1)。
sadd命令
添加一個string元素到key對應的set集合中,成功返回1,元素已在集合中返回0,key對應的set不存在返回錯誤。
語法格式:sadd key member
127.0.0.1:6379> sadd subject java
(integer) 1
127.0.0.1:6379> sadd subject html
(integer) 1
127.0.0.1:6379> sadd subject java
(integer) 0
127.0.0.1:6379> smembers subject
1) "java"
2) "html"
值java
被添加了兩次,但根據集合內元素唯一性,第二次添加的元素將忽略。
集合中最大的成員數爲232-1
zset:有序集合(sorted set)
添加元素到集合,若元素在集合中存在則更新對應score。
語法格式
zadd key score member
127.0.0.1:6379> zadd zname 0 zs
(integer) 1
127.0.0.1:6379> zadd zname 0 ls
(integer) 1
127.0.0.1:6379> zadd zname 0 ww
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE zname 0 10
1) "ls"
2) "ww"
3) "zs"
參考資料
http://www.runoob.com/redis/redis-install.html
https://www.yiibai.com/redis/redis_quick_guide.html