redis 學習筆記(一)

  由於之前在空閒時間自學了redis,所以留下了些許自學的筆記;覺得有必要留在博客中以便後續使用中方便自身查閱。

(一)、redis 的數據類型級操作:

1.【Strings 類型和操作】

String 類型:一個key對於一個value,最簡單的數據類型,二進制安全的;Redis的String可以包含任何數據,可以是圖片jpg或者是序列化的對象。

操作:

set: 設置key 對應的值爲String類型的value。

setnx:設置key 對應的值爲String類型的value;如果key已經存在,則返回0,並且不設置新的value值。;否則更新並返回1.nx的是not exist的意思。

demo:

redis 127.0.0.1:6379> setnx age 20
(integer) 1
redis 127.0.0.1:6379> get age
"20"
redis 127.0.0.1:6379> setnx age 40
(integer) 0
redis 127.0.0.1:6379> get age
"20"

setex:設置key 對應的值爲String類型的value;並指定鍵值的有效期。

demo:設置name的值爲leo 十秒內有效
redis 127.0.0.1:6379> setex name 10 leo
OK
redis 127.0.0.1:6379> get name
"leo"
redis 127.0.0.1:6379> get name
(nil)

setrange:設置指定key值的隻字符串。

demo:設置leo的郵箱 從126 替換成163.com

redis 127.0.0.1:6379> set email [email protected]
OK
redis 127.0.0.1:6379> get email
"[email protected]"
redis 127.0.0.1:6379> setrange email 3 @163.com
(integer) 11
redis 127.0.0.1:6379> get email
[email protected]

【注】:但是這個替換隻會替換幾個長度, 要是替換的長度小於原來value的長度的話,原來的後面字符會保留,要是大於的話,則會自動填充。

demo:

redis 127.0.0.1:6379> set email [email protected]
OK
redis 127.0.0.1:6379> get email
"[email protected]"
redis 127.0.0.1:6379> setrange email 3 nardo

(integer) 15
redis 127.0.0.1:6379> get email
"leonardo163.com"

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

demo:

redis 127.0.0.1:6379> mset key1 leo key2 leonardo
OK
redis 127.0.0.1:6379> get key1
"leo"
redis 127.0.0.1:6379> get key2
"leonardo"
redis 127.0.0.1:6379> msetnx key4 lll key5 xxx key2 xxx
(integer) 0
redis 127.0.0.1:6379> get key4
(nil)
redis 127.0.0.1:6379>

 

get:

getset: 設置一個key的新值 返回一個key的舊值.

getrange :獲取value的子字符串

mget:獲取多個key的值。
demo:
redis 127.0.0.1:6379> getrange email 0 6
"leonard"
redis 127.0.0.1:6379>

 

incr : 代表對某一個值 來做++(遞增操作),並且返回新的值.

incrby:以指定的數 進行自增,並且返回新的值,

decr: 代表對某一個值 來做--(遞減操作),並且返回新的值.

decrby:以指定的數 進行自減,並且返回新的值.

append:給指定key的字符串追加value,返回新字符串值的長度.

2.【Hashes數據類型及操作】

hash類型:redis的hash類型是string類型field和value的映射表,所有的新增和刪除都是0(1);特別適合於存儲對象。對於String類型而言,hash佔用內存更少;並且更方便存儲整個對象。

hset:設定hash field 爲指定值,如果key 不存在,則先創建。


[注意]:可以把key user:001 看做張表,然後name、age 爲表中的field。

hset:設定hash field 爲指定值,如果key 不存在,則先創建。如果存在,則返回0;而且field映射的value不會被覆蓋

hmset:批量設置hash field的值,如果key 不存在,則先創建。

hmget:批量查詢field的值。

hincrby:對hash field的值以指定的數 進行自增,並且返回新的值。

hexists:校驗hash field進行校驗,字段存在返回1, 不存在返回0.

hlen:返回hash中filed的數量數。

hdel:刪除hash中的field

hkeys:返回hash中的所有(field)字段

hvals:返回hash中的所有值(value)


hgetall:同時返回某個hash中的所有的field以及value


 

3.【list類型和操作】

redis 中list類型的每一樣子元素都是string類型的雙向鏈表,可以通過push、pop操作對鏈表的頭部或者尾部進行添加刪除元素,所以這樣的類型

可以使棧,也可以是隊列。【操作中key理解爲鏈表的名字】

lpush:在key對應的list的頭部添加字符串元素。

rpush:在key對應的list的尾部添加字符串元素。


發佈了25 篇原創文章 · 獲贊 20 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章