当前位置: 首页 > news >正文

尼高网站设计公司网站开发运营推广叫什么

尼高网站设计公司,网站开发运营推广叫什么,用自己头像做的圣诞视频网站,九一制作网站系列文章目录 一、SpringBoot连接MySQL数据库实例【tk.mybatis连接mysql数据库】 二、SpringBoot连接Redis与Redisson【代码】 三、SpringBoot整合WebSocket【代码】 四、SpringBoot整合ElasticEearch【代码示例】 文章目录 系列文章目录代码下载地地址一、引入依赖二、修改配…系列文章目录 一、SpringBoot连接MySQL数据库实例【tk.mybatis连接mysql数据库】 二、SpringBoot连接Redis与Redisson【代码】 三、SpringBoot整合WebSocket【代码】 四、SpringBoot整合ElasticEearch【代码示例】 文章目录 系列文章目录代码下载地地址一、引入依赖二、修改配置文件三、添加配置类1、RedisConfig2、RedissonConfig 四、工具包1、RedisUtils2、RedissonUtils 代码下载地地址 Springboot整合Redis与Redisson【代码】 一、引入依赖 !-- redis --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdversion2.1.1.RELEASE/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.11.1/version/dependency!--redisson--dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion2.10.0/version/dependency二、修改配置文件 spring:redis:database: 11host: localhostport: 6379password: 123456 # 密码默认为空lettuce:pool:max-active: 1000 # 连接池最大连接数使用负值表示没有限制max-wait: 1000ms # 连接池最大阻塞等待时间使用负值表示没有限制max-idle: 10 # 连接池中的最大空闲连接min-idle: 5 # 连接池中的最小空闲连接shutdown-timeout: 50000ms三、添加配置类 1、RedisConfig Slf4j Configuration EnableCaching // 开启缓存支持 public class RedisConfig extends CachingConfigurerSupport {Beanpublic CacheManager cacheManager(LettuceConnectionFactory connectionFactory) {RedisCacheConfiguration tokenCacheConfiguration RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(1)).disableCachingNullValues().prefixKeysWith(user);MapString, RedisCacheConfiguration cacheConfigurationMap new HashMap();cacheConfigurationMap.put(user, tokenCacheConfiguration);RedisCacheWriter redisCacheWriter RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);RedisCacheConfiguration defaultCacheConfig RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(30));return new RedisCacheManager(redisCacheWriter, defaultCacheConfig, cacheConfigurationMap);}/*** RedisTemplate配置*/Beanpublic RedisTemplateString, Object redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) {// 设置序列化Jackson2JsonRedisSerializerObject jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);// 配置redisTemplateRedisTemplateString, Object redisTemplate new RedisTemplateString, Object();redisTemplate.setConnectionFactory(lettuceConnectionFactory);RedisSerializer? stringSerializer new StringRedisSerializer();redisTemplate.setKeySerializer(stringSerializer);// key序列化redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);// value序列化redisTemplate.setHashKeySerializer(stringSerializer);// Hash key序列化redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);// Hash value序列化redisTemplate.afterPropertiesSet();return redisTemplate;}}2、RedissonConfig Configuration public class RedissonConfig {Value(${spring.redis.host})private String host;Value(${spring.redis.port})private String port;Value(${spring.redis.password})private String password;Value(${spring.redis.database})private Integer database;Beanpublic RedissonClient redissonClient() {Config config new Config();config.useSingleServer().setAddress(redis:// host : port).setPassword(password).setDatabase(database);return Redisson.create(config);} }四、工具包 1、RedisUtils package org.example.utils;import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils;import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit;/*** redis 工具类** author Lee*/ Slf4j Component public class RedisUtils {Autowiredprivate RedisTemplateString, Object redisTemplate;/*** 指定缓存失效时间** param key 键* param time 时间(秒)* return*/public boolean expire(String key, long time) {try {if (time 0) {redisTemplate.expire(key, time, TimeUnit.SECONDS);}return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 根据key 获取过期时间** param key 键 不能为null* return 时间(秒) 返回0代表为永久有效*/public long getExpire(String key) {return redisTemplate.getExpire(key, TimeUnit.SECONDS);}/*** 判断key是否存在** param key 键* return true 存在 false不存在*/public boolean hasKey(String key) {try {return redisTemplate.hasKey(key);} catch (Exception e) {e.printStackTrace();return false;}}/*** 删除缓存** param key 可以传一个值 或多个*/SuppressWarnings(unchecked)public void del(String... key) {if (key ! null key.length 0) {if (key.length 1) {redisTemplate.delete(key[0]);} else {redisTemplate.delete(CollectionUtils.arrayToList(key));}}}/*** 查询全部key* param keys* return*/public SetString keys(String keys) {return redisTemplate.keys(keys);}// String/*** 普通缓存获取** param key 键* return 值*/public Object get(String key) {return key null ? null : redisTemplate.opsForValue().get(key);}/*** 普通缓存放入** param key 键* param value 值* return true成功 false失败*/public boolean set(String key, Object value) {try {redisTemplate.opsForValue().set(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 普通缓存放入并设置时间** param key 键* param value 值* param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期* return true成功 false 失败*/public boolean set(String key, Object value, long time) {try {if (time 0) {redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);} else {set(key, value);}return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 递增** param key 键* param delta 要增加几(大于0)* return*/public long incr(String key, long delta) {if (delta 0) {throw new RuntimeException(递增因子必须大于0);}return redisTemplate.opsForValue().increment(key, delta);}/*** 递减** param key 键* param delta 要减少几(小于0)* return*/public long decr(String key, long delta) {if (delta 0) {throw new RuntimeException(递减因子必须大于0);}return redisTemplate.opsForValue().increment(key, -delta);}// Map/*** HashGet** param key 键 不能为null* param item 项 不能为null* return 值*/public Object hget(String key, String item) {return redisTemplate.opsForHash().get(key, item);}/*** 获取hashKey对应的所有键值** param key 键* return 对应的多个键值*/public MapObject, Object hmget(String key) {return redisTemplate.opsForHash().entries(key);}/*** HashSet** param key 键* param map 对应多个键值* return true 成功 false 失败*/public boolean hmset(String key, MapString, Object map) {try {redisTemplate.opsForHash().putAll(key, map);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** HashSet 并设置时间** param key 键* param map 对应多个键值* param time 时间(秒)* return true成功 false失败*/public boolean hmset(String key, MapString, Object map, long time) {try {redisTemplate.opsForHash().putAll(key, map);if (time 0) {expire(key, time);}return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 向一张hash表中放入数据,如果不存在将创建** param key 键* param item 项* param value 值* return true 成功 false失败*/public boolean hset(String key, String item, Object value) {try {redisTemplate.opsForHash().put(key, item, value);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 向一张hash表中放入数据,如果不存在将创建** param key 键* param item 项* param value 值* param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间* return true 成功 false失败*/public boolean hset(String key, String item, Object value, long time) {try {redisTemplate.opsForHash().put(key, item, value);if (time 0) {expire(key, time);}return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 删除hash表中的值** param key 键 不能为null* param item 项 可以使多个 不能为null*/public void hdel(String key, Object... item) {redisTemplate.opsForHash().delete(key, item);}/*** 判断hash表中是否有该项的值** param key 键 不能为null* param item 项 不能为null* return true 存在 false不存在*/public boolean hHasKey(String key, String item) {return redisTemplate.opsForHash().hasKey(key, item);}/*** hash递增 如果不存在,就会创建一个 并把新增后的值返回** param key 键* param item 项* param by 要增加几(大于0)* return*/public double hincr(String key, String item, double by) {return redisTemplate.opsForHash().increment(key, item, by);}/*** hash递减** param key 键* param item 项* param by 要减少记(小于0)* return*/public double hdecr(String key, String item, double by) {return redisTemplate.opsForHash().increment(key, item, -by);}// set/*** 根据key获取Set中的所有值** param key 键* return*/public SetObject sGet(String key) {try {return redisTemplate.opsForSet().members(key);} catch (Exception e) {e.printStackTrace();return null;}}/*** 根据value从一个set中查询,是否存在** param key 键* param value 值* return true 存在 false不存在*/public boolean sHasKey(String key, Object value) {try {return redisTemplate.opsForSet().isMember(key, value);} catch (Exception e) {e.printStackTrace();return false;}}/*** 将数据放入set缓存** param key 键* param values 值 可以是多个* return 成功个数*/public long sSet(String key, Object... values) {try {return redisTemplate.opsForSet().add(key, values);} catch (Exception e) {e.printStackTrace();return 0;}}/*** 将set数据放入缓存** param key 键* param time 时间(秒)* param values 值 可以是多个* return 成功个数*/public long sSetAndTime(String key, long time, Object... values) {try {Long count redisTemplate.opsForSet().add(key, values);if (time 0)expire(key, time);return count;} catch (Exception e) {e.printStackTrace();return 0;}}/*** 获取set缓存的长度** param key 键* return*/public long sGetSetSize(String key) {try {return redisTemplate.opsForSet().size(key);} catch (Exception e) {e.printStackTrace();return 0;}}/*** 移除值为value的** param key 键* param values 值 可以是多个* return 移除的个数*/public long setRemove(String key, Object... values) {try {Long count redisTemplate.opsForSet().remove(key, values);return count;} catch (Exception e) {e.printStackTrace();return 0;}}// list/*** 获取list缓存的内容** param key 键* param start 开始* param end 结束 0 到 -1代表所有值* return*/public ListObject lGet(String key, long start, long end) {try {return redisTemplate.opsForList().range(key, start, end);} catch (Exception e) {e.printStackTrace();return null;}}/*** 获取list缓存的长度** param key 键* return*/public long lGetListSize(String key) {try {return redisTemplate.opsForList().size(key);} catch (Exception e) {e.printStackTrace();return 0;}}/*** 通过索引 获取list中的值** param key 键* param index 索引 index0时 0 表头1 第二个元素依次类推index0时-1表尾-2倒数第二个元素依次类推* return*/public Object lGetIndex(String key, long index) {try {return redisTemplate.opsForList().index(key, index);} catch (Exception e) {e.printStackTrace();return null;}}/*** 将list放入缓存** param key 键* param value 值* return*/public boolean lSet(String key, Object value) {try {redisTemplate.opsForList().rightPush(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 将list放入缓存** param key 键* param value 值* param time 时间(秒)* return*/public boolean lSet(String key, Object value, long time) {try {redisTemplate.opsForList().rightPush(key, value);if (time 0)expire(key, time);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 将list放入缓存** param key 键* param value 值* return*/public boolean lSet(String key, ListObject value) {try {redisTemplate.opsForList().rightPushAll(key, value);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 将list放入缓存** param key 键* param value 值* param time 时间(秒)* return*/public boolean lSet(String key, ListObject value, long time) {try {redisTemplate.opsForList().rightPushAll(key, value);if (time 0)expire(key, time);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 根据索引修改list中的某条数据** param key 键* param index 索引* param value 值* return*/public boolean lUpdateIndex(String key, long index, Object value) {try {redisTemplate.opsForList().set(key, index, value);return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 移除N个值为value** param key 键* param count 移除多少个* param value 值* return 移除的个数*/public long lRemove(String key, long count, Object value) {try {Long remove redisTemplate.opsForList().remove(key, count, value);return remove;} catch (Exception e) {e.printStackTrace();return 0;}}} 2、RedissonUtils Service public class RedissonUtils {private final RedisTemplateString, Object redisTemplate;private final RedissonClient redissonClient;private static final String TEST_LOCK_1 TEST_LOCK_1;private static final String TEST_LOCK_2 TEST_LOCK_2;public RedissonUtils(RedisTemplateString, Object redisTemplate, RedissonClient redissonClient) {this.redisTemplate redisTemplate;this.redissonClient redissonClient;}public void test1(Integer guidanceTimeId) {// 获取 Redisson 的分布式锁RLock lock redissonClient.getLock(TEST_LOCK_1);try {// 尝试获取锁lock.lock();// 业务代码 // String key test1; // redisTemplate.opsForValue().decrement(key);} catch (Exception e) {e.printStackTrace();} finally {// 释放锁lock.unlock();}}public void test2(Integer guidanceTimeId) {// 获取 Redisson 的分布式锁RLock lock redissonClient.getLock(TEST_LOCK_2);try {// 尝试获取锁lock.lock();// 业务代码 // String key test2; // redisTemplate.opsForValue().increment(key);} catch (Exception e) {e.printStackTrace();} finally {// 释放锁lock.unlock();}} }
http://www.yayakq.cn/news/5766/

相关文章:

  • ae模板精品站互联网培训班
  • 宁波网站建设明细报价上海松江水处理网站建设
  • 信阳专业做网站公司网站制作推广需要多少钱
  • 莱芜住房和城乡建设部网站邯郸广告公司网站建设
  • 众筹网站建设报价春雨app直播免费版下载
  • 微信网站公众平台太原网站建设策划方案
  • 建设心理网站的背景网站建设常用代码
  • 全栈网站开发在哪租用网站
  • 网站推广包括哪些龙岗网页设计
  • 怎么做网站视频教育品牌加盟网站建设
  • 西部数码网站源码电商培训机构推荐
  • 网站变灰是什么事品牌软文范文
  • 外语网站建设济南建网站公司
  • 花瓣设计网站官网入口在网站做责编会很累吗
  • 在一个网站下建设多个子网站西安网站建设中企建站
  • 山东企业网站建设自主建站
  • 京东商城网站建设目标湖北省利川市建设局网站
  • 高端房产网站建设山楼小院在哪家网站做宣传
  • 南昌网站设计专业排名阳城做网站
  • 东城网站建设工作室智能硬件开发
  • 海淀网站建设公司排名网站工程师简历
  • 英文介绍做美食视频网站网站app建设需要资源
  • 网站商城服务体系建设方案平面广告设计素材网
  • 做搜狗网站优化排嘉祥建设局网站
  • 兰州市城乡建设局网站公布的信息营销网站建设 公司排名
  • 山东电力建设网站确山网站建设
  • 网站开发集中国建设信息网官网八大员证查询
  • 自动生成作文的网站中小企业营销型网站建设
  • 郑州网站建站西安市城乡建设网站
  • 河北省企业信用信息查询公示系统优化公司组织结构