(二)redis的資料型別

2021-08-31 11:30:47 字數 2265 閱讀 3235

redis可以儲存資料,但是不加限定,這裡的資料指的是個什麼樣的資料就成了疑問,因為面對現實社會中存在的資訊,不同語言或者不同工具,會把它們劃分成不同的資料型別,每種資料型別甚至又有自己獨特的表示方式。所以引出了redis這個工具中可以容納的資料型別。redis的資料型別可以分為字串、雜湊表、鍊錶、集合(有、無順序)。字串型別是最基本的資料型別,也可以理解為細胞,其他的為人體器官。

如果我們只儲存乙個字串,那麼我們肯定會選擇字串資料型別來完成。那如果我們要儲存一組資料,並且把他們看成乙個整體,進行其他操作,那我們就會用到後面的集合,集合又分為很多種,具體用哪一種,就需要根據實際情況去選擇了。

雜湊是內部是由n個鍵值對組成的,鍵值對的key和value在redis中同樣都是字串型別;同樣,乙個redis中可能包含好多個雜湊表(hash),為了區分,所以需要有個名字,既上篇文章的鍵,也是字串型別。有了hash表,他可以儲存資料,那可以儲存多少呢?redis 中每個 hash 可以儲存 232 - 1 鍵值對(40多億)。hash特別適合用於儲存物件。

(1)需要注意的命令

hincrby key field increment
為名為 key 的雜湊表的field鍵值對的整數值加上增量 increment 。如果field對應的value的值要是整數,否則則會報錯,如果沒有此鍵值對,那麼會在hash表中增加乙個鍵值對,值為increment 。

為名為 key 的雜湊表的field鍵值對的整數值加上增量 increment 。如果field對應的value的值要是浮點數值,否則則會報錯,如果沒有此鍵值對,那麼會在hash表中增加乙個鍵值對,值為increment 。這裡注意,執行命令後,值是有誤差的。

redis列表是簡單的字串列表,按照插入順序排序。你可以新增乙個元素到列表的頭部(左邊)或者尾部(右邊),乙個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。

(1)需要注意的命令

①從列表的頭部插入命令(左邊)

redis 127.0.0.1:6379> lpush key_name value1.. valuen
redis lpush 命令將乙個或多個值插入到列表頭部。 如果 key 不存在,乙個空列表會被建立並執行 lpush 操作。 當 key 存在但不是列表型別時,返回乙個錯誤。

注意:在redis 2.4版本以前的 lpush 命令,都只接受單個 value 值。注意看下面例子取值命令,取出來的順序與插入順序的關係。

例子:

127.0.0.1:6379> lpush list1 "foo"

(integer) 1

127.0.0.1:6379> lpush list1 "bar"

(integer) 2

127.0.0.1:6379> lrange list1 0 -1

1) "bar"

2) "foo"

②從列表的尾部插入資料(右邊)

redis 127.0.0.1:6379> rpush key_name value1..valuen
redis rpush 命令用於將乙個或多個值插入到列表的尾部(最右邊)。如果列表不存在,乙個空列表會被建立並執行 rpush 操作。 當列表存在但不是列表型別時,返回乙個錯誤。

注意:在 redis 2.4 版本以前的 rpush 命令,都只接受單個 value 值。

例子:

redis 127.0.0.1:6379> rpush mylist "hello"

(integer) 1

redis 127.0.0.1:6379> rpush mylist "foo"

(integer) 2

redis 127.0.0.1:6379> rpush mylist "bar"

(integer) 3

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "hello"

2) "foo"

3) "bar"

redis(二) 資料型別

參考文章 一 redis資料型別 1.1 字串 strings 有人說,如果只使用redis中的字串型別,且不使用redis的持久化功能,那麼,redis就和memcache非常非常像了。這說明strins型別是乙個很基礎的資料型別,也是任何儲存系統都必須必備的資料型別。字串型別是二進位制安全的。1...

redis的資料型別(二)string型別

下面講解value,value包括string list set sorted set hash string是最基本的型別,而且stirng型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg或者序列化的物件。從內部實現來看其實string可以看做byte陣列,最大上限...

Redis的資料型別操作(二)

redis中所有的資料都是字串。命令不區分大小寫,key是區分大小寫的。redis是單執行緒的。redis中不適合儲存內容大的資料。get set incr 加一 生成id decr 減一 linux指令例子 set key1 11 get key1 輸出11 incr key1 輸出12 decr...