redis 學習之一(資料結構)

2021-08-19 22:20:36 字數 4063 閱讀 2095

儲存物件的兩種方式

//儲存序列化之後的物件

jedis.set("user:liudehua:obj".getbytes(), getbytesbyproduct(person) );

"user:liudehua:obj".getbytes(), "fasdf"); 不能用這種形式

byte productbytes = jedis.get("user:liudehua:obj".getbytes());

person pbyte = getproductbybytes(productbytes);

system.out.println(pbyte.getname()+" " +pbyte.getage());

//儲存json化之後的物件

jedis.set("user:liudehua:json", new gson().tojson(person));

string personjson = jedis.get("user:liudehua:json");

person pjson = new gson().fromjson(personjson, person.class);

system.out.println(pjson.getname()+" "+ pjson.getage());

應用場景:儲存物件的時候

redis list

中只有 lrange這個方法沒有 rrange這個方法不要想多了

insert 也只有 linsert這個方法 

jedis.linsert("櫃檯1", binaryclient.list_position.after, "鳩摩智", "慕容復");

jedis.linsert("櫃檯1", binaryclient.list_position.before,"鳩摩智","令狐沖");

listlist1 = jedis.lrange("櫃檯1", 0, -1);

for (string name : list1)

system.out.println();

trim也是只有個 ltrim  它是用來修剪得

string res = jedis.ltrim("櫃檯1", 0, 2);  (0,2)是保留下來的資料,其他的都被修剪了。

if ("ok".equals(res))

}

lpush rpush 倒是有的

相對應的 lpop rpop 也是有的

redis set 都是以s開頭 map是以h開頭不是m開頭,m開頭的是string的mget mset

sadd方法:

jedis.sadd("biwu:dengji", daxias);  //daxias是乙個陣列,可以直接往set裡面新增陣列
和sadd配對的是smembers方法 

setdaxiaset = jedis.smembers("biwu:dengji");

for (string name : daxiaset)

system.out.println();

sismember 判斷是否有存在元素

scard 計算redis的set中有多少個元素

//計算兩個set之間的交集

setusers = jedis.sinter("biwu:dengji", "guoji:dengji");

for (string name : users)

system.out.println();

//計算兩個set之間的並集

users = jedis.sunion("biwu:dengji", "guoji:dengji");

for (string name : users)

system.out.println();

system.out.println("井中月出來了");

//計算兩個集合的差集

users = jedis.sdiff("biwu:dengji", "guoji:dengji");

for (string name : users)

system.out.println();

system.out.println();

//將兩個集合計算出來的差集儲存起來,公升級為超級vip

jedis.sdiffstore("vipdaxia","biwu:dengji", "guoji:dengji");

for (string name : jedis.smembers("vipdaxia"))

redis orderset 方法都是以z開頭的

jedis.zadd(

"比武成績",

10,

"喬峰");

jedis.zadd(

"比武成績", 5,

"王重陽");

jedis.zadd(

"比武成績", 7,

"虛竹");

jedis.zadd(

"比武成績", 2,

"王語嫣");

jedis.zadd(

"比武成績", 5,

"段譽");

jedis.zadd(

"比武成績", 4,

"峨眉師太");

jedis.

zadd

("比武成績",

20,

"張三丰");

//獲取sortset中所有的元素

setnames = jedis.

zrange

("比武成績",

0, -1);

for(string name : names)

system.

out

.println(

"******************************");

names = jedis.

zrevrange

("比武成績",

0, -1);

for(string name : names)

system.

out

.println(

"******************************");

//修改使用者的分數

jedis.zincrby(

"比武成績",

100,

"王語嫣");

names = jedis.zrevrange(

"比武成績",

0, -1);

for(string name : names)

}

資料結構複習篇之一 資料結構相關知識

1.資料 是資訊的載體,是描述客觀事物屬性的數 字元以及所有能輸入到計算機中被電腦程式識別和處理的符號的集合 2.資料元素 是資料的基本單位,通常作為乙個整體進行考慮和處理。3.資料物件 具有相同性質的資料元素的集合,是資料的乙個子集。4.資料型別 1 原子型別 其值不可再分的資料型別 2 結構型別...

一 資料結構

char cs new char char cs1 new char 4 cs1 0 a 注意 注意陣列下標越界 char cs new char system.out.println cs 4 特點 1.記憶體位址連續,使用之前必須指定陣列長度 2.可以通過下標訪問的方式訪問成員,查詢效率高 3....

演算法實習準備之一 資料結構複習(一)

ps畢業要求的小 已經投出去啦,目前的任務就是複習演算法基礎知識準備實習,為了方便回顧內容和分享,我會將相關知識梳理並總結在csdn上 資料結構的三要素 邏輯結構 物理結構 資料運算。邏輯結構 線性結構 線性表 棧 佇列 非線性結構 樹 圖 集合。物理結構 順序儲存 鏈式儲存 索引儲存 雜湊儲存。1...