redis的數據類型講解相關命令

1、string類型

String是最簡單的類型,一個 key對應一個 Value,String類型是二進制安全的。Redis的 string可以包含任何數據,比如 jpg圖片或者序列化的對象。(1)set設置鍵,值

語法:set 鍵名稱 值例如:我們添加一個 name="hanguo"的鍵值對。重新設置則直接覆蓋。

redis的數據類型講解相關命令

(2)get獲取 key對應的 string值,如果 key不存在返回 nil,語法:get 鍵值

redis的數據類型講解相關命令

(3)Setnx設置鍵時,先判斷一下該鍵是否存在,如果 key已經存在,返回 0,nx是 not exist的意思。

若鍵已經存在,則設置不成功,返回 0

redis的數據類型講解相關命令

(4)setex設置 key對應的值為 string類型的 value,並指定此鍵值對應的有效期。語法:setex 名稱 有效期 值例如:我們添加一個 color = red的鍵值對,並指定有效期為 10秒。

redis的數據類型講解相關命令

(5)setrange替換字符串中某些字符

語法:setrange 鍵名稱 開始替換的序號 替換為的內容例如:我們希望將 hanguo的 sohu郵箱替換為 qq.com郵箱

redis的數據類型講解相關命令

(6)mset一次設置多個 key的值,成功返回 ok表示所有的值都設置了,失敗返回 0表示沒有任何值被設置。

語法:

mset 名稱 1 值 1 名稱 2 值 2

redis的數據類型講解相關命令

(7)msetnx一次設置多個 key的值,成功返回 ok表示所有的值都設置了,失敗返回 0表示沒有任何值被設置,但是不會覆蓋已經存在的 key。

(8)getset設置 key的值,並返回 key的舊值。(設置新值,獲取舊值。)

(9)getrange獲取 key的 value值的範圍內的子字符串getrange name 0 5(10)mget一次獲取多個 key的值,如果對應 key不存在則對應返回 nil。

(11)incr對 key的值做加加操作,並返回新的值。incrby同 incr類似,加指定值,key不存在時候會設置 key,並認為原來的 value是 0。

(12)decr對 key的值做減減操作。decrby同 decr類似,減指定值

(13)append給指定 key的字符串追加 value,返回新字符串值的長度。

(14)strlen取指定 key的 value值的長度。

2、hashes類型

Redis hash是一個 string類型的 field和 value的映射表。它的添加、刪除操作都是 0(1)(平均)。hash特別適合用於存儲對象。相較於將對象的每個字段存成單個 string類型。將一個對象存儲在 hash類型中會佔用更少的內存,並且可以更方便的存取整個對象。

(1)hset設置 hash field為指定值,如果 key不存在,則先創建。語法:

hset 哈希名稱 字段名稱 值

(2)hget取出 hash field的值。語法:hget 哈希名稱 字段名稱

(3)hsetnx設置 hash field為指定值,如果 key不存在,則先創建,如果存在則返回 0。

redis的數據類型講解相關命令

(4)hmset同時設置 hash的多個 field語法:hmset 哈希名稱 field1 value1 field2 value2

(5)hmget獲取全部指定的 hash field。語法:hmget 哈希名稱 field1 field2

(6)hincrby指定的 hash field加上給定的值。

(7)hexists

測試指定的 field是否存在。

(8)hlen返回指定 hash的 field數量。

(9)hdel刪除指定 hash的 field語法:hdel 哈希名 field

(10)hkeys返回 hash的所有 field

(11)hvals返回 hash的所有 value。

(12)hgetall獲取某個 hash中全部的 field及 value

3、lists類型及操作

list是一個鏈表結構,主要功能是 push、pop、獲取一個範圍的所有值等等,操作中key 理解為鏈表的名字。redis的 list類型其實就是一個每個子元素都是 string類型的雙向鏈表。我們可以通過 push、pop操作從鏈表的頭部或者尾部添加刪除元素,這樣 list即可以作為棧,又可以作為隊列。(1)lpush在 key對應 list的頭部添加字符串元素。語法:lpush 鏈表名稱 值內容

redis的數據類型講解相關命令

(2)lrange獲取鏈表裡面的值,語法:lrange 鏈表名稱 0 -1注意 0 和 -1 表示取值範圍,從頭部到尾部。

(3)rpush在 key對應 list的尾部添加字符串元素。語法:rpush 鏈表名稱 值內容

(3)linsert在 key對應 list的特定位置前或後添加字符串。

redis的數據類型講解相關命令

(4)lset設置 list中指定下標的元素值。注:下標從 0開始計算

(5)lrem從 key對應 list中刪除 n個和 value相同的元素。(n<0從尾刪除,n=0全部刪除)

(6)ltrim保留指定 key的值範圍內的數據。

redis的數據類型講解相關命令

(7)lpop從 list的頭部刪除元素,並返回刪除元素。

(8)rpop從 list的尾部刪除元素,並返回刪除元素。

(9)rpoplpush從第一個 list的尾部移除元素並添加到第二個 list的頭部。

(10)lindex返回名稱為 key的 list中 index位置的元素。

(11)llen返回 key對應 list的長度。

4、sets類型及操作

set是集合,它是 string類型的無序集合。set是通過 hash table實現的、添加、刪除和查找的複雜度都是 0(1)。對集合我們可以取並集、交集、差集。通過這些操作我們可以實現 sns中的好友推薦和 blog的 tag功能。(1)sadd向名稱為 key 的 set中添加元素。語法:sadd 集合名 元素

(2)smembers 獲取集合中內容,語法:smembers 集合名稱(3)srem刪除名稱為 key的 set中的元素.

(4)spop隨機返回並刪除名稱為 key的 set中一個元素。

(5)sdiff返回所有給定 key與第一個 key的差集。

(6)sdiffstore返回所有給定 key與第一個 key的差集,並將結果存為另一個 key。語法:sdiffstore 新的集合 集合 1 集合 2

(7)sinter返回所有給定 key的交集.

(8)sinterstore返回所有給定 key的交集,並將結果存為另一個 key

(9)sunion返回所有給定 key的並集

(10)sunionstore返回所有給定 key的並集。

(11)smove從第一個 key對應的 set中移除 member並添加到第二個對應的 set中。

(12)scard返回名稱為 key的 set的元素個數。

(11)sismember測試 member是否是名稱為 key的 set的元素

(12)srandmember隨機返回名稱為 key的 set的一個元素,但不刪除元素

5、sorted sets類型及操作

sorted set是 set的一個升級版本,他在 set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解為有兩列的 mysql表,一列存 value,一列存順序。操作中的 key理解為 zset的名字。(1)zadd向名稱為 key的 zset中添加元素。如果該元素存在,則更新其順序。語法:zadd 集合名 序號 內容

(2)zrange獲取有序集合中的內容

(3)zrem刪除名稱為 key的 zset中的元素 member。

(4)zincrby如果在名稱為key的zset中已經存在元素member,則該元素的 score增加 increment否則向該集合中添加該元素,其 score的值為 increment。

(5)zrank返回名稱為 key的 zset中 member元素的排名(按 score 從小到大排序)即下標。

(6)zrevrank返回名稱為 key的 zset中 member元素的排名(按 score 從大到小排序)即下標。

(7)zrevrange返回名稱為 key的 zset(按 score從大到小順序)中的 index從 start到 end的所有元素。

(8)zrangebyscore返回集合中 score在給定區間的元素

(9)zcount返回集合中 score在給定區間的數量。

(10)zcard返回集合中元素的個數

(11)zremrangebyrank刪除集合中排名在給定區間的元素。

(12)zremrangebyscore刪除集合中 score在給定區間的元素。

6、redis常用命令

redis提供了豐富的命令對數據庫和各種數據庫類型進行操作,這些命令可以在linux終端使用。1、鍵值相關的命令(1)keys返回滿足給定參數的所有 key用表達式*,代表取出所有的 key

(2)exists確認一個 key是否存在。

(3)expire設置一個 key的過期時間

(4)move:將當前數據庫中的 key轉移到其它數據庫中。

(5)persist移除給定 key的過期時間

(6)randomkey隨機返回 key空間的一個 key

(7)rename重命名 key

(8)type:返回值的類型

2、服務器相關命令(1)select選擇數據庫。redis數據庫編號從 0-15,我們可以選擇任意一個數據庫來進行數據的存取。

當選擇 16時,報錯,說明沒有編號為 16的這個數據庫。

(2)quit退出連接

(3)dbsize返回當前數據庫中 key的數目

(4)info獲取服務器的信息和統計。

(5)config get獲取參數的配置。

本例中我們獲取了 dir這個參數配置的值,如果想獲取全部參數的配置只需要執行"config get *"即可將全部的值都顯示出來

redis的數據類型講解相關命令

(6)flushdb刪除當前選擇數據庫中的所有 key

(7)flushall刪除所有數據庫中的所有的 key


分享到:


相關文章: