`

利用redis生成序列编码 Util

阅读更多
public class SequenceCodeUtils {

    /**
     *  生成递增序列码
     * @param redisTemplate
     * @param prefix 前缀
     * @param dailyIncNumSize 日增量长度
     * @return
     */
    public static String genSeqCode(RedisTemplate redisTemplate, String prefix, int dailyIncNumSize){
        String thisDate = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE);
        String store_key = String.join(SequenceCodeUtils.class.getName(), prefix, thisDate);
        Long inc = redisTemplate.opsForValue().increment(store_key, 1);
        if (inc.compareTo(1L)==0) { // 第一次,设置过期时间
            redisTemplate.expire(store_key, 2, TimeUnit.DAYS);
        }
        String increment =  String.valueOf(Math.round(Math.pow(10,dailyIncNumSize)) +inc).substring(1);
        return String.join("",prefix, thisDate, increment);
    }
}
分享到:
评论

相关推荐

    利用redis生成注解实现进程锁

    本篇文章将深入探讨如何利用Redis这一高效、内存型的数据存储系统来生成注解,实现进程锁的功能。 首先,我们需要理解进程锁的基本概念。在多线程环境下,进程锁用于防止多个线程同时访问共享资源,避免数据竞争...

    redis编码转换器

    例如,从GBK编码转换到UTF-8编码,需要将GBK编码的字节序列解析为对应的字符,然后再用UTF-8编码规则重新生成字节序列。 在C#中,我们可以使用`Encoding`类来处理不同的字符编码。`Encoding.UTF8`代表UTF-8编码,而...

    订单号的生成redis中获取

    在给定的标题“订单号的生成redis中获取”中,我们可以推断这是一个关于利用Redis来生成订单号的实践。Redis是一个高性能的键值存储系统,常用于缓存和实时数据操作,其速度快,适合处理高并发场景下的订单号生成。 ...

    redis使用过程中由于序列化工具引起的问题

    默认情况下,Redis并不提供内置的序列化机制,而是依赖于客户端库的实现。在Java中,Spring Data Redis通常使用`Jedis`或`Lettuce`作为客户端,并提供了`RedisTemplate`作为操作Redis的抽象层。`RedisTemplate`内部...

    redis注解方式序列化改造

    改redis序列化方式由GenericJackson2RedisSerializer改为Jackson2JsonRedisSerializer

    Redis部署笔记(单机+主从+哨兵+集群)

    ● 屏蔽byte[]数据类型,所有实现了序列化接口的对象均可直接在Redis进行读写 ● 保留String数据类型(并不会序列化成byte[],目的是保留与其他程序交互数据的方式) ● 把Redis的Map封装成RedisMap类(key强制为...

    springboot分布式自增id_javaredis_源码

    标题中的“springboot分布式自增id_javaredis_源码”表明我们关注的是一个使用Spring Boot实现的分布式系统中的自增ID生成方案,其中利用了Java Redis客户端库。在分布式环境中,确保全局唯一且顺序递增的ID是常见的...

    利用hiredis库连接redis源码

    在本文中,我们将深入探讨如何使用`hiredis`库连接到`Redis`数据库,并以C++编程语言实现这一过程。`hiredis`是一个高效、简洁的C语言`Redis`客户端库,它使得与`Redis`服务器进行交互变得更加简单。 首先,我们...

    REDIS_redis的工具包_redisinlabview_labviewredis_labview调用redis_redis

    总结来说,`REDIS_redis的工具包`提供了在LabVIEW中无缝集成Redis的能力,使得LabVIEW程序能够利用Redis的强大功能,实现高效的数据存储和通信。通过深入理解和实践,开发者可以构建出满足各种需求的LabVIEW-Redis...

    tomcat7利用redis做session共享所需jar包

    本篇文章将详细讲解如何在Tomcat7中利用Redis进行session共享,并介绍所需的jar包以及简单的配置步骤。 首先,我们需要理解session共享的基本概念。Session是服务器端用来跟踪用户状态的一种机制,通常存储在服务器...

    SpringBoot中利用Redis实现消息队列,代码亲测可用, 可以传输字符串,或java对象都可以

    SpringBoot中利用Redis实现消息队列,代码亲测可用, 可以传输字符串,或java对象都可以

    场景应用:利用Redis实现分布式Session案例

    场景应用:利用Redis实现分布式Session案例

    详解SSH框架和Redis的整合

    8. **性能优化**:根据应用负载调整Redis的配置,如调整连接池大小,优化数据序列化和反序列化方式,以及合理设置过期时间等。 通过以上步骤,SSH框架与Redis的整合完成,使得应用能够充分利用Redis的缓存功能,...

    RedisConfig.java

    RedisConfig:Redis配置类 设置数据存入 redis 的序列化方式,并开启事务,注入封装RedisTemplate等等

    redis-windows-Redis7.0.0.zip

    Redis,全称Remote Dictionary Server,是一款开源的、高性能的键值存储系统,广泛应用于...通过理解其数据类型、命令操作、持久化机制以及复制与高可用性策略,开发者可以充分利用Redis优化应用程序,提升系统性能。

    redistimeseries.so redistimeseries.so

    redistimeseries.so redistimeseries.so redistimeseries.so redistimeseries.so redistimeseries.soredistimeseries.so redistimeseries.so redistimeseries.so redistimeseries.so redistimeseries.

    redis-utilredis-util

    `redis-util` 提供了针对 Redis 的实用工具,帮助开发者更方便地操作 Redis 数据库。在这个 `redisUtil-master` 压缩包中,我们可以期待找到一些关于如何高效使用 Redis 的工具类或脚本,可能包括连接管理、命令封装...

    Celery 4.0 Redis未授权访问+Pickle反序列化利用(celery3_redis_unauth)POC

    Celery 4.0 Redis未授权访问+Pickle反序列化利用(celery3_redis_unauth)exploit Celery 版本默认使用Pickle进行任务消息的序列化传递,当所用队列服务(比如Redis、RabbitMQ、RocketMQ等等等)存在未授权访问问题...

    对Redis在Windows下的利用方式思考R3start1

    标题中的“对Redis在Windows下的利用方式思考R3start1”指的是探讨如何在Windows操作系统上利用Redis服务进行安全相关的操作,可能是为了测试系统的安全性或进行恶意活动。描述中提到的作者r3start分享了关于Redis在...

Global site tag (gtag.js) - Google Analytics