首頁 > 資料庫 > Redis > 主體

一起聊聊Redis如何實現保存對象

WBOY
發布: 2022-08-24 09:20:38
轉載
2965 人瀏覽過

推薦學習:Redis影片教學

#redis儲存物件

redis資料結構

  • String——字串
  • Hash——字典
  • List——列表
  • Set——集合
  • Sorted Set——有序集合
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
登入後複製

儲存物件

RedisConfig.java 

package com.wj.demo.config; 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
 
@Configuration
public class RedisConfig {
 
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {  
        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();  
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        template.setHashKeySerializer(new GenericJackson2JsonRedisSerializer());
        template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
        template.afterPropertiesSet();  
        return template;  
    }
}
登入後複製

測試成功。

redis存放物件的兩種方式

資料格式

  • 使用者id為尋找的key
  • 所儲存的value使用者物件包含姓名,年齡,生日等等
  • 如果用普通的key-value結構來存儲,主要有以下2種方式存儲
##方式一(String)

這種方式是使用list或set這些來儲存的,這樣的方式其實也可以達到我們想要的效果,但是因為每次修改屬性都需要三步驟走,效能開銷非常大。 1.先反序列化;2,修改;3.序列化

方式二(hash)

這種方式其實也有兩種寫法

寫法一:

這種寫法不僅能夠達成目標,而且解決了資源消耗過大的問題,但是也引起了另一個問題,就是用戶的id資料冗餘

寫法二:

#透過key(使用者id) field(屬性標籤)可以操作對應屬性資料了,既不需要重複存儲數據,也不會帶來序列化和並修復操控的問題

#推薦學習:

Redis視頻教程#

以上是一起聊聊Redis如何實現保存對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!