最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringDataRedis簡單使用示例代碼

 更新時間:2023年02月03日 09:13:29   作者:你的肩上有片楓葉  
這篇文章主要介紹了SpringDataRedis簡單使用,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

spring-data-redis

spring-data-redis是spring-data模塊的一部分,專門用來支持在spring管理項目對redis的操作,使用java操作redis最常用的是使用jedis,但并不是只有jedis可以使用,像jdbc-redis jredis也都屬于redis的java客戶端,他們之間是無法兼容的,如果你在一個項目中使用了jedis,然后后來決定棄用掉改用jdbc-redis就比較麻煩了,spring-data-redis提供了redis的java客戶端的抽象,在開發(fā)中可以忽略掉切換具體的客戶端所帶來的影響,而且他本身就屬于spring的一部分,比起單純的使用jedis,更加穩(wěn)定.管理起來更加自動化.(當然jedis的缺點不止以上).

spring-data-redis的特性

  • 自動管理連接池,提供了一個高度封裝的RedisTemplate類
  • 針對jedis客戶端的大量api進行了歸類封裝,把同一類型的操作封裝成了operation接口.支持redis中的五種數(shù)據(jù)類型的操作.
  • 針對數(shù)據(jù)的"序列化與反序列化"]提供了多種可以選擇的策略(RedisSerializer)
  • JdkSerializationRedisserializer:當需要存儲java對象時使用.
  • stringRedisSerializer:當需要存儲string類型的字符串時使用.
  • JacksonJsonRedisSerializer:將對象序列化成json的格式存儲在redis中,需要jackson-json工具的支持(目前我還沒使用過,不了解)

SpringBoot的版本是2.x

引入依賴

<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

編寫配置文件

spring:
  redis:
    host: ip地址
    port: 6379
    password: 密碼
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 100ms

編寫測試類

@SpringBootTest
class RedisDemoApplicationTests {
    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    void testString(){
        redisTemplate.opsForValue().set("name","shengyi");
        Object name = redisTemplate.opsForValue().get("name");
        System.out.println("name = " + name);
    }
}

SpringDataRedis自動序列化

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        //設置工廠
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //設置序列化工具
        GenericJackson2JsonRedisSerializer redisSerializer = new GenericJackson2JsonRedisSerializer();
        //采用string序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());
        redisTemplate.setHashKeySerializer(RedisSerializer.string());
        //采用json序列化
        redisTemplate.setValueSerializer(redisSerializer);
        redisTemplate.setHashValueSerializer(redisSerializer);

        return redisTemplate;
    }
}

Spring默認提供的StringRedisTemplate

key和value的序列化默認都是String。
所以當存取對象時需要進行手動序列化

@Autowired
    private StringRedisTemplate stringRedisTemplate;
    //JSON工具
    private static final ObjectMapper mapper = new ObjectMapper();

    @Test
    void stringRedisTemplateTest() throws JsonProcessingException {
        Student student = new Student("楓葉", 18);
        //手動序列化
        String s = mapper.writeValueAsString(student);
        //寫入到redis
        stringRedisTemplate.opsForValue().set("student:1", s);

        //讀取數(shù)據(jù)
        String s1 = stringRedisTemplate.opsForValue().get("student:1");
        //反序列化
        Student student1 = mapper.readValue(s1, Student.class);
        System.out.println("student1 = " + student1);
    }

@Autowired
    private StringRedisTemplate stringRedisTemplate;
    //JSON工具
    private static final ObjectMapper mapper = new ObjectMapper();

    @Test
    void stringRedisTemplateTest() throws JsonProcessingException {
        Student student = new Student("楓葉", 18);
        //手動序列化
        String s = mapper.writeValueAsString(student);
        //寫入到redis
        stringRedisTemplate.opsForValue().set("student:1", s);

        //讀取數(shù)據(jù)
        String s1 = stringRedisTemplate.opsForValue().get("student:1");
        //反序列化
        Student student1 = mapper.readValue(s1, Student.class);
        System.out.println("student1 = " + student1);
    }

到此這篇關于SpringDataRedis簡單使用的文章就介紹到這了,更多相關SpringDataRedis使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

当涂县| 旅游| 麻阳| 凤庆县| 万安县| SHOW| 固始县| 威信县| 多伦县| 武鸣县| 环江| 承德市| 永州市| 丹巴县| 丹棱县| 沐川县| 栖霞市| 赤壁市| 多伦县| 长子县| 司法| 灵台县| 额济纳旗| 霸州市| 神农架林区| 兰西县| 江川县| 凌源市| 宜都市| 吉木乃县| 正定县| 永城市| 嘉黎县| 福建省| 兴国县| 额济纳旗| 大邑县| 北海市| 大新县| 广东省| 三门县|