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

redis保存AtomicInteger對象踩坑及解決

 更新時間:2022年11月22日 17:19:40   作者:夜月如水  
這篇文章主要介紹了redis保存AtomicInteger對象踩坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

redis保存AtomicInteger對象踩坑

redisTemplate 保存AtomicInteger對象異常:

java.lang.ClassCastException: java.util.concurrent.atomic.AtomicInteger cannot be cast to java.lang.String
    at org.springframework.data.redis.serializer.StringRedisSerializer.serialize(StringRedisSerializer.java:36)
    at org.springframework.data.redis.core.AbstractOperations.rawValue(AbstractOperations.java:127)
    at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:235)
    at com.quan.starter.service.impl.RedisServiceImpl.set(RedisServiceImpl.java:139)

跟蹤源碼發(fā)現(xiàn)其執(zhí)行的是 StringRedisSerializer 的實現(xiàn),serialize默認(rèn)接收的參數(shù)類型為String 從而拋出以上異常

經(jīng)過檢查,發(fā)現(xiàn)是RedisTemplate泛型惹的禍:

@Autowired
private RedisTemplate<String, String> redisTemplate;

解決方案

去除泛型:

@Autowired
private RedisTemplate redisTemplate;

運行服務(wù)再次跟蹤源碼,執(zhí)行的是 DefaultValueOperations 的實現(xiàn),問題解決

RedisAtomicInteger的使用

RedisAtomicInteger 從名字上來說就是 redis 的原子Integer 數(shù)據(jù)類型,由于其原子性,可用于秒殺活動物品數(shù)量的控制。

以及保證順序生成數(shù)字。

  @Resource
    RedisTemplate<String, Object> redisTemplate;


    /**
     * RedisAtomicInteger
     *
     * @throws Exception 異常
     */
    @Test
    public void testTransaction1() throws Exception {
        RedisAtomicInteger redisCount = new RedisAtomicInteger("key1", this.redisTemplate.getConnectionFactory());
        redisCount.set(0);
        // 創(chuàng)建 100 個線程 并發(fā)執(zhí)行  increment 操作
        ExecutorService pool = Executors.newFixedThreadPool(10);
        for (int i = 0; i < 100; i++) {
            pool.submit(() -> {
                // 配額碼原子變量值增加,每次增加1
                for (int j = 0; j < 100; j++) {
                    int count = redisCount.incrementAndGet();
                    log.info(Thread.currentThread().getName() + ": " + count);
                }
            });
        }
    }

結(jié)果

.
.
.
pool-2-thread-90: 9989
pool-2-thread-61: 9987
pool-2-thread-3: 9986
pool-2-thread-12: 9990
pool-2-thread-25: 9991
pool-2-thread-90: 9992
pool-2-thread-12: 9994
pool-2-thread-61: 9993
pool-2-thread-25: 9995
pool-2-thread-61: 10000
pool-2-thread-12: 9996
pool-2-thread-61: 9997
pool-2-thread-25: 9998
pool-2-thread-12: 9999

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis 實現(xiàn)“附近的人”功能

    Redis 實現(xiàn)“附近的人”功能

    Redis基于geohash和有序集合提供了地理位置相關(guān)功能。這篇文章主要介紹了Redis 實現(xiàn)“附近的人”功能,需要的朋友可以參考下
    2019-11-11
  • redis通過位圖法記錄在線用戶的狀態(tài)詳解

    redis通過位圖法記錄在線用戶的狀態(tài)詳解

    這篇文章主要給大家介紹了關(guān)于redis如何通過位圖法記錄在線用戶的狀態(tài)的相關(guān)資料,文中先對位圖進行了一個簡單的介紹,而后通過示例代碼將實現(xiàn)的方法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • redis的string類型及bitmap介紹

    redis的string類型及bitmap介紹

    這篇文章主要介紹了redis的string類型及bitmap介紹,redis有很多的客戶端連接進來,站在redis所在機器的角度來說,就是有很多socket的連接
    2022-07-07
  • Redis安裝圖文教程(Windows和Linux)

    Redis安裝圖文教程(Windows和Linux)

    這篇文章主要介紹了Redis安裝教程(Windows和Linux),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • redis哈希類型_動力節(jié)點Java學(xué)院整理

    redis哈希類型_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了redis哈希類型的常用方法及原理淺析,感興趣的朋友一起看看吧
    2017-08-08
  • Centos7.3安裝Redis4.0.6詳細(xì)圖文教程

    Centos7.3安裝Redis4.0.6詳細(xì)圖文教程

    這篇文章主要介紹了Centos7.3安裝Redis4.0.6詳細(xì)教程圖解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • Redis中LFU算法的深入分析

    Redis中LFU算法的深入分析

    這篇文章主要給大家介紹了關(guān)于Redis中LFU算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Redis安裝使用RedisJSON模塊的方法

    Redis安裝使用RedisJSON模塊的方法

    在使用Redis中,我們可以使用大量的Redis模塊來擴展Redis的功能,本文主要介紹了Redis安裝使用RedisJSON模塊的方法,具有一定的參考價值,感興趣的可以了解一下
    2022-03-03
  • 淺析Redis Sentinel 與 Redis Cluster

    淺析Redis Sentinel 與 Redis Cluster

    本文主要介紹Redis Sentinel 及 Redis Cluster的區(qū)別及用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 使用Redis命令操作數(shù)據(jù)庫的常見錯誤及解決方法

    使用Redis命令操作數(shù)據(jù)庫的常見錯誤及解決方法

    由于Redis是內(nèi)存數(shù)據(jù)庫,因此可能會存在一些安全問題,下面這篇文章主要給大家介紹了關(guān)于使用Redis命令操作數(shù)據(jù)庫的常見錯誤及解決方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02

最新評論

五常市| 榆中县| 光泽县| 班玛县| 天台县| 临汾市| 丁青县| 忻城县| 梁平县| 乌恰县| 南投市| 沙坪坝区| 彰化市| 禄丰县| 新郑市| 鄢陵县| 东丽区| 米林县| 塔城市| 石台县| 韶关市| 荥经县| 晋江市| 武宁县| 突泉县| 明光市| 安图县| 西充县| 永济市| 徐州市| 运城市| 揭阳市| 牙克石市| 花莲市| 荥阳市| 青龙| 苏尼特左旗| 崇州市| 长海县| 玉山县| 扶沟县|