redis和mysql的區(qū)別:
redis是屬于nosql的數(shù)據(jù)庫(kù),而mysql是屬于sql數(shù)據(jù)庫(kù),redis是屬于nosql數(shù)據(jù)庫(kù)。mysql是存儲(chǔ)在磁盤中的,redis是存儲(chǔ)在內(nèi)存中的,所以redis的讀取書讀快。這里所說的redis代表nosql,而mysql代表sql。
redis的數(shù)據(jù)庫(kù)是以鍵值對(duì)為基礎(chǔ)存儲(chǔ)在內(nèi)存中的,而mysql為代表的關(guān)系型數(shù)據(jù)庫(kù)是以表為基礎(chǔ)存儲(chǔ)在磁盤中的。下面這張圖總結(jié)了兩者之間的區(qū)別:
redis和java的互通:
1.Jedis客戶端
1、 引入依賴
2、建立連接
3、使用
4、釋放資源
缺點(diǎn):jedis本身是線程不安全的,頻繁的創(chuàng)建和銷毀連接會(huì)有性能損耗。 —利用連接池代替jedis直連。
連接池設(shè)置
使用
連接池的釋放,仍然與Jedis直連一樣。函數(shù)內(nèi)部,它會(huì)有判斷是否是連接池,如果是就歸還連接。
SpringDataRedis.
– 對(duì)letture和Jedis的整合。
–提供了redistemplate類統(tǒng)一api來操作redis
–支持基于jdk、json、字符串、spring對(duì)象的數(shù)據(jù)序列化及反序列化。
1.引入依賴
2.引入redis的配置信息,springboot的application.properties文件
3.注入RedisTemplate,拿到連接池中的redisTemplate
private StringRedisTemplate redisTemplate;
如果要用這個(gè)方法使用redis一定注意redis的序列化,不然就會(huì)導(dǎo)致redis數(shù)據(jù)庫(kù)內(nèi)部的存儲(chǔ)不對(duì),因?yàn)樵趈ava這邊,默認(rèn)會(huì)將所要存儲(chǔ)對(duì)象專程object類存儲(chǔ)—將java對(duì)象轉(zhuǎn)成字節(jié),傳到redis中,可能導(dǎo)致存儲(chǔ)在redis中會(huì)亂碼。
方式一
序列化方式
上述這種方式為了在反序列化知道對(duì)象的類型,json序列化器會(huì)將類的class類型也存儲(chǔ)在json結(jié)果中,帶來額外的內(nèi)存消耗。
第二種方式就是進(jìn)行手動(dòng)序列化和反序列化
文章來源:http://www.zghlxwxcb.cn/news/detail-831845.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-831845.html
到了這里,關(guān)于【Redis,Java】Redis的兩種序列化方式—nosql數(shù)據(jù)庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!