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

Redis increment 函數(shù)處理并發(fā)序列號(hào)案例

 更新時(shí)間:2024年08月29日 11:10:09   作者:Teln_小凱  
這篇文章主要介紹了Redis increment 函數(shù)處理并發(fā)序列號(hào)案例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

1. 創(chuàng)建Spring Boot項(xiàng)目

首先,創(chuàng)建一個(gè)新的Spring Boot項(xiàng)目。你可以使用Spring Initializr(https://start.spring.io/)來(lái)生成項(xiàng)目結(jié)構(gòu)。選擇以下依賴(lài):

  • Spring Web
  • Spring Data Redis
  • Lombok(可選,用于簡(jiǎn)化代碼)

2. 配置application.yml

在你的 ?application.yml?文件中添加Redis配置:

spring:
  cache:
    type: GENERIC
  redis:
    host: ${sy.redis.ip}
    password:
    port: ${sy.redis.port}
    database: ${sy.redis.database}

3. 創(chuàng)建緩存配置類(lèi)

創(chuàng)建一個(gè)配置類(lèi)來(lái)手動(dòng)配置基于Redis的緩存管理器:

import org.springframework.cache.CacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import java.time.Duration;
@Configuration
public class CacheConfig {
    @Bean
    public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
        RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofMinutes(10)) // 設(shè)置緩存過(guò)期時(shí)間
                .disableCachingNullValues()
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
        return RedisCacheManager.builder(redisConnectionFactory)
                .cacheDefaults(cacheConfiguration)
                .build();
    }
}

4. 創(chuàng)建服務(wù)類(lèi)

創(chuàng)建一個(gè)服務(wù)類(lèi)來(lái)使用Redis的 ?INCR?方法生成每天的序號(hào)

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@Service
public class SequenceService {
    @Autowired
    private StringRedisTemplate redisTemplate;
    public long getDailySequence() {
        String dateStr = DateUtils.format(new Date(), "yyyy-MM-dd");
        String key = "dailySequence_" + dateStr;
        // 執(zhí)行 increment 操作
        Long applicantNumber = redisTemplate.opsForValue().increment(key);
        // 設(shè)置過(guò)期時(shí)間為2天,不設(shè)置默認(rèn)永久
        redisTemplate.expire(key, 2, TimeUnit.DAYS);
        //redisTemplate.expire(key) // 查詢(xún)key的過(guò)期時(shí)間。
        //-1: 表示鍵存在但沒(méi)有設(shè)置過(guò)期時(shí)間。
        //-2: 表示鍵不存在。
        //返回秒:如上面返回值是 172780,這意味著該鍵將在大約 172780 秒(約 48 小時(shí))后過(guò)期。
        return applicantNumber;
    }
}

5. 創(chuàng)建控制器

創(chuàng)建一個(gè)控制器來(lái)暴露獲取每天序號(hào)的API:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SequenceController {
    @Autowired
    private SequenceService sequenceService;
    @GetMapping("/daily-sequence")
    public String getDailySequence() {
        long sequence = sequenceService.getDailySequence();
        return "Daily sequence: " + sequence;
    }
}

6. 啟動(dòng)類(lèi)

確保你的啟動(dòng)類(lèi)包含 ?@EnableCaching?注解以啟用緩存功能:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
public class RedisIncrApplication {
    public static void main(String[] args) {
        SpringApplication.run(RedisIncrApplication.class, args);
    }
}

到此這篇關(guān)于Redis increment 函數(shù)處理并發(fā)序列號(hào)的文章就介紹到這了,更多相關(guān)Redis increment 序列號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis官方ORM框架比RedisTemplate更優(yōu)雅

    Redis官方ORM框架比RedisTemplate更優(yōu)雅

    這篇文章主要為大家介紹了Redis官方ORM框架比RedisTemplate更優(yōu)雅的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • redis簡(jiǎn)單介紹及安裝使用小結(jié)

    redis簡(jiǎn)單介紹及安裝使用小結(jié)

    本文主要是對(duì)于redis初步學(xué)習(xí)的小結(jié)內(nèi)容,包括了redis介紹,redis安裝以及最簡(jiǎn)單的使用,希望大家能夠喜歡
    2018-11-11
  • 聊一聊redis奇葩數(shù)據(jù)類(lèi)型與集群知識(shí)

    聊一聊redis奇葩數(shù)據(jù)類(lèi)型與集群知識(shí)

    現(xiàn)在越來(lái)越多的項(xiàng)目都會(huì)利用到redis,多實(shí)例redis服務(wù)比單實(shí)例要復(fù)雜的多,這里面涉及到定位、容錯(cuò)、擴(kuò)容等技術(shù)問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于redis奇葩數(shù)據(jù)類(lèi)型與集群知識(shí)的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Redis核心原理詳細(xì)解說(shuō)

    Redis核心原理詳細(xì)解說(shuō)

    這篇文章主要介紹了Redis核心原理詳細(xì)解說(shuō),redis利用epoll實(shí)現(xiàn)IO多路復(fù)用,將連接信息和事件放到隊(duì)列中,依次放到文件事件分派器,事件分派器將事件分發(fā)給事件處理器
    2022-07-07
  • 一次關(guān)于Redis內(nèi)存詭異增長(zhǎng)的排查過(guò)程實(shí)戰(zhàn)記錄

    一次關(guān)于Redis內(nèi)存詭異增長(zhǎng)的排查過(guò)程實(shí)戰(zhàn)記錄

    這篇文章主要給大家分享了一次關(guān)于Redis內(nèi)存詭異增長(zhǎng)的排查過(guò)程實(shí)戰(zhàn)記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Redis+aop實(shí)現(xiàn)接口防刷(冪等)的解決方案

    Redis+aop實(shí)現(xiàn)接口防刷(冪等)的解決方案

    在高并發(fā)場(chǎng)景下,可能會(huì)因?yàn)榫W(wǎng)絡(luò)或者服務(wù)器原因,造成延遲,同時(shí)就是有可能會(huì)有人用腳本大量訪問(wèn)你的接口,造成資源崩潰,所以本文給大家介紹了Redis+aop實(shí)現(xiàn)接口防刷(冪等)的解決方案,需要的朋友可以參考下
    2024-03-03
  • Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí)

    Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí)

    這篇文章主要為大家介紹了Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Redis中過(guò)期鍵如何刪除示例詳解

    Redis中過(guò)期鍵如何刪除示例詳解

    因?yàn)閞edis數(shù)據(jù)是基于內(nèi)存的,然而內(nèi)存是非常寶貴的資源,然后我們就會(huì)對(duì)一些不常用或者只用一次的數(shù)據(jù)進(jìn)行存活時(shí)間設(shè)置,這樣才能提高內(nèi)存的使用效率,下面這篇文章主要給大家介紹了關(guān)于Redis中過(guò)期鍵如何刪除的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Redis中的RDB用法原理及說(shuō)明

    Redis中的RDB用法原理及說(shuō)明

    Redis RDB是通過(guò)fork子進(jìn)程生成內(nèi)存數(shù)據(jù)快照的持久化機(jī)制,采用寫(xiě)時(shí)復(fù)制(COW)技術(shù),確保數(shù)據(jù)一致性,優(yōu)點(diǎn):性能高、恢復(fù)快;缺點(diǎn):可能丟失最后一次持久化后的數(shù)據(jù),常用于備份,建議與AOF結(jié)合使用以兼顧安全與效率
    2025-09-09
  • 解讀緩存db redis local的取舍之道

    解讀緩存db redis local的取舍之道

    這篇文章主要介紹了解讀緩存db redis local的取舍之道,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論

兰州市| 涟水县| 商水县| 南部县| 武乡县| 汶上县| 永胜县| 洞口县| 澎湖县| 湘西| 开平市| 麟游县| 阿克| 无锡市| 信阳市| 盐池县| 阿拉善右旗| 乌拉特前旗| 贺州市| 寻甸| 桃园市| 改则县| 镇康县| 确山县| 昌乐县| 光泽县| 丽江市| 泉州市| 阿巴嘎旗| 冷水江市| 新巴尔虎左旗| 绥江县| 布拖县| 酉阳| 偏关县| 犍为县| 光山县| 息烽县| 锡林浩特市| 格尔木市| 八宿县|