redis的五種基本數據類型


redis基本數據類型

redis一共分為5中基本數據類型:String,Hash,List,Set,ZSet

第一種String

String類型是包含很多種類型的特殊類型,並且是二進制安全的。比如序列化的對象進行儲存,比如一張圖片進行二進制儲存,比如一個簡單的字符串數值等等。

set和get方法:
設置值set  name realValue 
取值 get name
說明:set設置name的時候,如果name重復,設置的值會進行覆蓋。

setnx 方法
設置值setnx name realValue 
說明:如果這個name已經存在,不會進行覆蓋,直接返回0.如果name不存在才會插入新的值。

setex方法
設置值setex name time(秒) realValue 
說明:設置這個name的value在緩存中存在的過期時間,過了這個時間后返回nil。在redis中nil標示null的意思。

setrange方法:替換字符串
set email 123456@qq.com
setrange email 10 ww   表是從第幾位開始替換成后面的字符串。
說明:此時把123456@qq.com替換成123456@qq.wwm

第二種Hash類型

Hash類型是String類型的filed和value的映射表,或者說是一個String的結合,他特別適合存儲對象。相比較而言把一個對象存儲在Hash類型中要比直接存儲在String中更加節省空間。並方便存儲整個對象,Hash類型也是我們工作中最常用的一種。

形如:hset user name ming  意思是一個Hash類型叫做user,這個user的屬性name的值是ming。

使用hget來獲取值   hget user  name 就能獲取到這個對象中的name屬性的值。

hmset可進行批量存儲多個鍵值對。hmset user age 15 sex man

hmget可進行批量獲取多個鍵值對。hmget user name age sex

Hash類型中同樣也有hsetnx,他和setnx大同小異。

hincrby和hdecrby集合遞增和遞減。

hexists 如果存在返回1,不存在返回0

hlen 返回hash中所有鍵的數值。

hkeys返回hash中的所有鍵。

hvals 返回Hash中所有的值。

hgetall返回Hash中所有的鍵和值。

第三種List

List類型是一個鏈表結構的集合,其主要功能有push,pop獲取元素等等。更詳細的說List類型是一個雙端鏈表結構,我們可以通過相關操作進行集合的頭部或者尾部添加刪除元素。List的設計非常簡單精巧,既可以作為棧又可以作為隊列。滿足絕大多數要求。

lpush方法:從頭部添加元素,(棧)先進后出。
設置值 lpush list hello   
說明:創建一個name為list的棧,並且入棧一個hello

rpush方法:從尾部添加元素(隊列)先進先出
設置值lpush list2  hello  
說明:創建一個name為list2的隊列,並且入棧一個hello

lrange方法:查看list中的值
 
linsert list2 before [集合的元素] [要插入的元素]

lset方法  將指定下標的元素替換掉

lrem方法:刪除制定元素,並且返回刪除元素的個數。

lpop方法:從List頭部刪除元素,並且返回刪除的元素。

rpop方法:從List尾部刪除元素,並且返回刪除的元素。

llen方法:返回元素的個數。

lindex方法:返回名稱為key的元素在List中的index位置的元素。lindex  list2 0 返回第一個元素

第四種Set類型

set集合是String類型的無序集合,set是通過hashtable實現的,對集合我們可以取交集,並集,差集。

sadd方法:向名稱為key的set中添加元素。
小結:set集合不允許重復元素,smembers查看set中的所有元素。

srem方法  刪除set集合元素。srem name 值

spop方法 隨機返回刪除的key

sdiff返回兩個集合不同元素,哪個集合在前面就以哪個集合為標准。

sdiffstore 將返回的不同元素存儲在另一個集合里面。 sdiffstore set3 set1 set2 。吧1和2的不同元素存儲在3中

sinter 返回兩個集合的交集。sinter set1 set2 返回set1中和set2中的交集元素。

sinterstore 將返回的交集存儲在一個新的集合中

smove方法:從一個set集合中移動元素到另一個set集合中 smove set2 set1 bbb 將set2中的bbb移動到set1中。

scard方法:查看集合中元素的個數。

第五種ZSet類型

Zset是在set的基礎上做了一個有序的調整。

zadd方法:向有序集合中添加一個元素,如果該元素存在,就更新順序。
小結:在重復插入的時候會根據順序屬性更新。

語法:zadd set1 1 aaa   其中的1代表序號。 就是排序的序號。aaa代表集合的值,set1代表集合的名字。

zrange 方法,查看集合中的值 zrange set1 0 -1 withscores
說明:withscores代表把序號也查詢出來,不想顯示序號可以不加。

zrem方法  刪除集合中的元素。

redis高級命令

keys * 返回所有的name

exists 是否存在指定的name

expire 設置某個key的過期時間,使用ttl查看剩余時間

persist 取消過期時間

select選擇數據庫,數據庫為0到15,共16個數據庫,默認進入的是0個數據庫。

move key [數據庫下標] 轉移到其他數據庫中

randomkey  隨機返回數據庫中的一個key

rename key newkey 重命名key

dbsize 查看當前數據庫中key的數量

flushdb 清空當前數據庫,flushall清空所有數據庫。

config get * 獲取當前redis配置項。

info 獲取數據庫信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM