首頁 >資料庫 >Redis >一起聊聊Redis如何實現保存對象

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

WBOY
WBOY轉載
2022-08-24 09:20:383077瀏覽

推薦學習: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刪除