# marketing-cache-starter **Repository Path**: uziot/marketing-cache-starter ## Basic Information - **Project Name**: marketing-cache-starter - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-06 - **Last Updated**: 2021-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #Redis缓存以及常用缓存starter ``` shidt 2020 ``` 1、集成redis缓存管理开箱即用 2、集成Redisson分布式锁管理开箱即用 3、接口防止重复提交功能管理 4、通过注解方式实现 ##一、Redis配置 ``` #redis spring.redis.database=1 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=pwd@123 # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.pool.max-active=20 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.jedis.pool.max-idle=10 # 连接池中的最小空闲连接 spring.redis.jedis.pool.min-idle=0 # 连接超时时间(毫秒) spring.redis.timeout=1000 ``` ##二、Redis缓存使用 ``` @RedisCache ``` 可在注解中配置缓存时间,以及刷新 ##三、需要注意 1、重点需要注意的是引入当前starter,会造成默认Redis服务对象Service在容器中存在 如果需要别的服务,请注意名称不要重复 2、注意容器中AOP比较多,@Order(?) 初始化调用顺序问题导致的BUG ## 四、Redisson ``` @RedissonLock(lockIndexs = {1}) ``` 1、生产配置如 ``` uziot: redisson: config: '{ "sentinelServersConfig":{ "idleConnectionTimeout":10000, "pingTimeout":1000, "connectTimeout":10000, "timeout":3000, "retryAttempts":3, "retryInterval":1500, "failedSlaveReconnectionInterval":3000, "failedSlaveCheckInterval":3 "password":"zjmzxfzhl", "subscriptionsPerConnection":5, "clientName":null, "loadBalancer":{ "class":"org.redisson.connection.balancer.RoundRobinLoadBalancer" }, "slaveSubscriptionConnectionMinimumIdleSize":1, "slaveSubscriptionConnectionPoolSize":50, "slaveConnectionMinimumIdleSize":32, "slaveConnectionPoolSize":64, "masterConnectionMinimumIdleSize":32, "masterConnectionPoolSize":64, "readMode":"SLAVE", "sentinelAddresses":[ "redis://172.172.222.101:26379", "redis://172.172.222.102:26379", "redis://172.172.222.103:26379" ], "masterName":"mymaster", "database":0 }, "threads":0, "nettyThreads":0, "codec":{ "class":"org.redisson.codec.JsonJacksonCodec" }, "transportMode":"NIO" }' ``` 2、测试配置案例 ``` uziot: redisson: config: '{ "singleServerConfig":{ "idleConnectionTimeout":10000, "pingTimeout":1000, "connectTimeout":10000, "timeout":3000, "retryAttempts":3, "retryInterval":1500, "password":"pwd@123", "subscriptionsPerConnection":5, "clientName":null, "address": "redis://127.0.0.1:6379", "subscriptionConnectionMinimumIdleSize":1, "subscriptionConnectionPoolSize":50, "connectionMinimumIdleSize":32, "connectionPoolSize":64, "database":0, "dnsMonitoringInterval":5000 }, "threads":0, "nettyThreads":0, "codec":{ "class":"org.redisson.codec.JsonJacksonCodec" }, "transportMode":"NIO" }' ``` 3、开启分布式锁 ``` #开启分布式锁 spring.profiles.include=devRedisson uziot.redisson.enabled=true ``` 五、重复提交管理 @RepeatSubmit(value = 5)