redis學習之redis基本數(shù)據類型以及Jedis

前言:

redis有5種基本數(shù)據類型瘤礁,分別是String(字符串)阳懂、Hash(字典)List(列表)柜思、Set(集合)岩调、Zset(有序集合),下面就分別來說一下這五種數(shù)據類型赡盘。


歡迎大家關注我的公眾號 javawebkf号枕,目前正在慢慢地將簡書文章搬到公眾號,以后簡書和公眾號文章將同步更新陨享,且簡書上的付費文章在公眾號上將免費葱淳。


數(shù)據類型詳解:

1、String:

二進制安全的數(shù)據類型抛姑,類似于Java中的Map赞厕,以key、value的形式存儲數(shù)據途戒。它有如下方法:
①坑傅、set和get方法:賦值和獲取值
語法:
set key value
get key
例子:
set username tom
get username

②、del方法:刪除指定的key
語法:
del key
例子:
del username

③喷斋、setnx方法:key不存在時進行設置唁毒,如果已有這個key就返回0
語法:
setnx key value
例子:
setnx age 22
如果有age這個key,就返回0,沒有就進行設置

④星爪、setex方法:設置有效期
語法:
setex key 有效期 value
例子:
setex color 10 red
設置color的有效期為10秒浆西,10秒后color為nil

⑤、setrange方法:替換字符串
語法:
set key 從第幾位開始替換 要替換的字符
例子:
set email 12356789@qq.com setrange email 9 gg
把qq替換成gg

⑥顽腾、mset和mget方法:一次設置或獲取多個值
語法:
mset key1 value1 key2 value2
mget key1 key2

⑦近零、incr和decr方法:對某個值進行遞增或遞減
語法:
incr key
decr key

⑧诺核、incrby和decrby方法:可以設置步長的遞增和遞減
語法:
incrby key 步長
decrby key 步長

⑨、append方法:追加字符串
語法:
append key 追加的內容

⑩久信、strlen方法:獲取字符串長度
語法:
strlen key

2窖杀、Hash:

占用內存更少,方便存儲對象裙士。它有如下方法:
①入客、hset和hget方法:
語法:
官方:hset key field value
自己理解:hset hashname key value
hget hashname key

②、hmset和hmget:批量操作
語法: hmset hashname key1 value1 key2 value2
hmget hashname key1 key2

③腿椎、hincrby和hdecrby:集合遞增和遞減
語法:
hincrby hashname key 步長
hdecrby name key 步長

④桌硫、hexists:是否存在key,存在就返回1,不存在返回0
語法:
hexists hashname key

⑤啃炸、hlen:返回集合中鍵的個數(shù)
語法:
hlen hashname

⑥铆隘、hdel:刪除指定的key
語法:
hdel hashname key

⑦、hvals:返回指定hash里的所有value
語法:
hvals hashname

⑧南用、hgetall:返回hash里所有的key膀钠、value
語法:
hgetall hashname

3、List:

鏈表結構的集合裹虫,既可以做棧也可以做隊列托修,它有如下方法:
①、lpush方法:從頭部加入元素(棧)恒界,先進后出
語法:
lpush key value
例子:
lpush list1 "hello"
lpush list1 "world"

②、lrange方法:取出list中的元素砚嘴,從start取到end
語法:
lrange key start end
例子:
lrange list1 0 -1
表示從頭取到尾

③十酣、rpush方法:從尾部加入元素(隊列),先進先出
語法:
rpush key value
例子:
rpush list1 "hello"

④、linsert方法:插入元素
語法:
linsert key before value1 insertvalue
例子:
linsert list1 before "world" "hello"
表示在world前插入一個hello

⑤际长、lset方法:將指定下標的元素換掉
語法:
lset key 下標 "替換的內容"
例子:
lset list1 0 "haha"
表示把索引為0的元素替換成haha

⑥耸采、lrem方法:刪除若干個元素,返回刪除的個數(shù)
語法:
lrem key 刪除的個數(shù) "刪除的元素"
例子:
lrem list1 2 "b"
刪除兩個b

⑦工育、ltrim方法:保留指定索引范圍內的值
語法:
ltrim key 索引1 索引2
例子:
ltrim list1 2 4
表示保留索引2到4的內容

⑧虾宇、lpop方法:從list頭部刪除元素,并返回刪除元素
語法:
lpop key

⑨如绸、rpop方法:從list尾部刪除元素嘱朽,并返回刪除元素
語法:
rpop key

⑩、rpoplpush方法:刪除key1中最后一個元素怔接,然后把這個元素加到key2的第一個位置(key1和key2可以相同)
語法:
rpoplpush key1 key2

①①搪泳、lindex方法:返回list中指定索引的值
語法:
lindex key 索引
例子:
lindex list1 1
返回list1中第二個元素

①②llen方法:返回list中元素個數(shù)
語法:
llen key

4、Set:

無序不重復集合扼脐,通過hashtable實現(xiàn)岸军。有如下方法:
①、sadd方法:添加元素
語法:
官方:sadd key member
自己理解:sadd setname value
例子:
sadd set1 haha

②、srem方法:刪除set的元素
語法:
srem setname value
例子:
srem set1 haha

③艰赞、spop方法:指定一個set佣谐,隨機刪除其里面的元素并返回
語法:
spop setname
例子:
spop set1

④、sdiff方法:返回set1不同于set2的元素
語法:
sdiff setname1 setname2

⑤方妖、sdiffstore方法:將set1不同于set2的元素存到set3中去
語法:
```sdiffstore setname1 setname2 setname3``‘

⑥狭魂、sinter方法:求set1和set2的交集
語法:
sinter setname1 setname2

⑦、sinterstore方法:把set1與set2的交集存到set3中
語法:
sinter setname1 setname2 setname3

⑧吁断、sunIon方法:求set1與set2的并集(I是大寫的i)
語法:
sunIon setname1 setname2

⑨趁蕊、sunIonstore方法:把set1與set2的并集存入set3
語法:
sunIonstore setname1 setname2 setname3

⑩、smove方法:將set1中的某個元素移動到set2中
語法:
smove setname1 setname2 value
例子:
smove set1 set2 ee
表示將set1中的ee移動到set2中

①①仔役、scard方法:查看set里的元素個數(shù)
語法:
scard setname

①②掷伙、sismember方法:判斷某個元素是否為set中元素,是返回1,不是返回0
語法:
sismember setname value
例子:
sismember set1 haha
判斷haha是不是set1中的元素

①③又兵、srandmember方法:隨機返回set中count個元素
語法:
srandmember setname count
例子:
srandmember set1 3
隨機返回set1中3個元素

5任柜、Zset:

和set的區(qū)別就是,Zset是有序的沛厨。它有如下方法:
①宙地、zadd方法:添加元素,如果元素存在逆皮,就更新該元素順序
語法:
zadd zsetname score value
例子:
zadd zset1 1 haha
表示添加haha這個元素宅粥,分數(shù)是1

②、zrem方法:刪除zset中的元素
語法:
zrem zsetname value
例子:
zrem zset1 haha

③电谣、zincrby和zdecrby方法:指定步長遞增或遞減
**語法: **
zincrby zsetname 步長 value
zdecrby zsetname 步長 value

④秽梅、zrank方法:返回某個元素的排序索引(從小到大排序)
語法:
zrank zsetname value
例子:
zrank zset1 haha
返回haha在zset1中的序號

⑤、zrevrank方法:返回排序索引(從大到小)
語法:
zrevrank zsetname value

⑥剿牺、zrangebyscore方法:查找分數(shù)在指定區(qū)間的數(shù)據并返回
語法:
zrangebyscore zsetname score1 score2 withscores
例子:
zrangebyscore zset1 1 4 withscores
返回分數(shù)在1到4之間的數(shù)據

⑦企垦、zcard方法:返回zset中元素的個數(shù)
語法:
zcard zsetname

⑧、zcount方法:返回zset中指定分數(shù)區(qū)間中元素的個數(shù)
語法:
zcount zsetname score1 score2

⑧晒来、zremrangebyrank:根據給定的索引區(qū)間刪除數(shù)據
語法:
zremrangebyrank zsetname index1 index2

⑨钞诡、zremrangebyscore:根據給定的分數(shù)區(qū)間刪除元素
語法:
zremrangebyscore zsetname score1 score2

Jedis

Jedis就是Java操作redis的一套API,所有方法都和上面介紹的數(shù)據類型方法一樣湃崩,只需要new一個Jedis實例荧降,傳入redis所在的機器的ip以及redis服務的端口,然后用這個實例調方法即可竹习。

總結:

redis有以上5大數(shù)據類型誊抛,每個類型都有若干的方法,學習時可以類比Java的集合進行學習整陌。

以上內容屬于個人學習筆記整理拗窃,如果錯誤瞎领,歡迎批評指正!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末随夸,一起剝皮案震驚了整個濱河市九默,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宾毒,老刑警劉巖驼修,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诈铛,居然都是意外死亡乙各,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門幢竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耳峦,“玉大人,你說我怎么就攤上這事焕毫《卓溃” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵邑飒,是天一觀的道長循签。 經常有香客問我,道長疙咸,這世上最難降的妖魔是什么县匠? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮撒轮,結果婚禮上聚唐,老公的妹妹穿的比我還像新娘。我一直安慰自己腔召,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布扮惦。 她就那樣靜靜地躺著臀蛛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崖蜜。 梳的紋絲不亂的頭發(fā)上浊仆,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音豫领,去河邊找鬼抡柿。 笑死,一個胖子當著我的面吹牛等恐,可吹牛的內容都是我干的洲劣。 我是一名探鬼主播备蚓,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼囱稽!你這毒婦竟也來了郊尝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤战惊,失蹤者是張志新(化名)和其女友劉穎流昏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吞获,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡况凉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了各拷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刁绒。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖撤逢,靈堂內的尸體忽然破棺而出膛锭,到底是詐尸還是另有隱情,我是刑警寧澤蚊荣,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布初狰,位于F島的核電站,受9級特大地震影響互例,放射性物質發(fā)生泄漏奢入。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一媳叨、第九天 我趴在偏房一處隱蔽的房頂上張望腥光。 院中可真熱鬧,春花似錦糊秆、人聲如沸武福。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捉片。三九已至,卻和暖如春汞舱,著一層夾襖步出監(jiān)牢的瞬間伍纫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工昂芜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留莹规,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓泌神,卻偏偏與公主長得像良漱,于是被迫代替她去往敵國和親舞虱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354