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

做物流网站电话号码最近10个新闻

做物流网站电话号码,最近10个新闻,做旅游网站宣传,重庆网站开发工资文章目录 一、关于spring-redis二、springboot引入Redis及其使用案例三、封装redistemplate操作工具类 一、关于spring-redis spring-data-redis针对jedis提供了如下功能: 连接池自动管理,提供了一个高度封装的“RedisTemplate”类 针对jedis客户端中大…

文章目录

    • 一、关于spring-redis
    • 二、springboot引入Redis及其使用案例
    • 三、封装redistemplate操作工具类

一、关于spring-redis

spring-data-redis针对jedis提供了如下功能:

  1. 连接池自动管理,提供了一个高度封装的“RedisTemplate”类

  2. 针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口

    ValueOperations:简单K-V操作
    SetOperations:set类型数据操作
    ZSetOperations:zset类型数据操作
    HashOperations:针对map类型的数据操作
    ListOperations:针对list类型的数据操作

  3. 提供了对key的“bound”(绑定)便捷化操作API,可以通过bound封装指定的key,然后进行一系列的操作而无须“显式”的再次指定Key,即BoundKeyOperations:

    BoundValueOperations
    BoundSetOperations
    BoundListOperations
    BoundSetOperations
    BoundHashOperations

  4. 将事务操作封装,有容器控制。

  5. 针对数据的“序列化/反序列化”,提供了多种可选择策略(RedisSerializer)

    JdkSerializationRedisSerializer:POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-server中将存储字节序列。是目前最常用的序列化策略。

    StringRedisSerializer:Key或者value为字符串的场景,根据指定的charset对数据的字节序列编码成string,是“new String(bytes, charset)”和“string.getBytes(charset)”的直接封装。是最轻量级和高效的策略。

    JacksonJsonRedisSerializer:jackson-json工具提供了javabean与json之间的转换能力,可以将pojo实例序列化成json格式存储在redis中,也可以将json格式的数据转换成pojo实例。因为jackson工具在序列化和反序列化时,需要明确指定Class类型,因此此策略封装起来稍微复杂。【需要jackson-mapper-asl工具支持】

    OxmSerializer:提供了将javabean与xml之间的转换能力,目前可用的三方支持包括jaxb,apache-xmlbeans;redis存储的数据将是xml工具。不过使用此策略,编程将会有些难度,而且效率最低;不建议使用。【需要spring-oxm模块的支持】

如果你的数据需要被第三方工具解析,那么数据应该使用StringRedisSerializer而不是JdkSerializationRedisSerializer。

二、springboot引入Redis及其使用案例

springboot引入Redis及其使用案例
参考URL: https://www.cnblogs.com/yuqingya/p/12881712.html

  1. Springboot项目引入依赖

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
  2. 配置

    spring:redis:host: 192.168.10.134port: 6379
    

    spring.redis.host=192.168.10.134
    spring.redis.port=6379
    
  3. 自定义redis配置类

    由于Springboot-data-redis帮我们自动装载了RedisTemplate对象,所以我们无需注册该bean。但是,如果用默认的 RedisTemplate ,那么在序列化存到redis中就会发现,key 就变的“不正常”了。

    比如,存之前key为"test" ,进入redis看,key就变成了"\xac\xed\x00\x05t\x00\x04test" 。这与RedisTemplate默认提供的序列化协议有关。

    @Configuration
    public class RedisConfiguration {@Beanpublic RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);// 使用Jackson2JsonRedisSerialize 替换默认序列化Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);ObjectMapper objectMapper = new ObjectMapper();objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(objectMapper);// 设置value的序列化规则和 key的序列化规则redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);redisTemplate.setKeySerializer(jackson2JsonRedisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;}
    }
    
  4. 测试使用
    这里使用SpringRunner.class 是Spring环境进行测试:

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = EdApplication.class)
    public class FenCiUtilText {@Autowiredprivate RedisTemplate redisTemplate;//测试放入@Testpublic void testRedisSet() {try {redisTemplate.opsForValue().set("test","This is a Springboot-Redis test!");} catch (Exception e){System.out.println(e.toString());}}//测试拿出@Testpublic void testRedisGet() {try {String key="test";Boolean isHas = redisTemplate.hasKey(key);if (isHas){Object test = redisTemplate.opsForValue().get(key);System.out.println(test);}else {System.out.println("抱歉!不存在key值为"+key);}} catch (Exception e){System.out.println(e.toString());}}
    }
    

三、封装redistemplate操作工具类

springboot之使用redistemplate优雅地操作redis
参考URL: https://www.cnblogs.com/superfj/p/9232482.html

@Service
public class RedisService {private static final Logger logger = LoggerFactory.getLogger(RedisService.class);@Autowiredprivate RedisTemplate<String, String> redisTemplate;/*** 默认过期时长,单位:秒*/public static final long DEFAULT_EXPIRE = 60 * 60 * 24;/*** 不设置过期时长*/public static final long NOT_EXPIRE = -1;public boolean set(final String key, String value){boolean result = false;try {ValueOperations operations = redisTemplate.opsForValue();operations.set(key, value);result = true;} catch (Exception e) {logger.error("写入redis缓存失败!错误信息为:" + e.getMessage());}return result;}public boolean set(final String key, String value, Long expire){boolean result = false;try {ValueOperations operations = redisTemplate.opsForValue();operations.set(key, value);redisTemplate.expire(key, expire, TimeUnit.SECONDS);result = true;} catch (Exception e) {logger.error("写入redis缓存(设置expire存活时间)失败!错误信息为:" + e.getMessage());}return result;}public String get(String key) {return key == null ? null : redisTemplate.opsForValue().get(key);}public boolean exists(String key) {return redisTemplate.hasKey(key);}/*** 重名名key,如果newKey已经存在,则newKey的原值被覆盖** @param oldKey* @param newKey*/public void renameKey(String oldKey, String newKey) {redisTemplate.rename(oldKey, newKey);}/*** newKey不存在时才重命名** @param oldKey* @param newKey* @return 修改成功返回true*/public boolean renameKeyNotExist(String oldKey, String newKey) {return redisTemplate.renameIfAbsent(oldKey, newKey);}/*** 删除key** @param key*/public void deleteKey(String key) {redisTemplate.delete(key);}/*** 删除多个key** @param keys*/public void deleteKey(String... keys) {Set<String> kSet = Stream.of(keys).map(k -> k).collect(Collectors.toSet());redisTemplate.delete(kSet);}/*** 删除Key的集合** @param keys*/public void deleteKey(Collection<String> keys) {Set<String> kSet = keys.stream().map(k -> k).collect(Collectors.toSet());redisTemplate.delete(kSet);}/*** 设置key的生命周期** @param key* @param time* @param timeUnit*/public void expireKey(String key, long time, TimeUnit timeUnit) {redisTemplate.expire(key, time, timeUnit);}/*** 指定key在指定的日期过期** @param key* @param date*/public void expireKeyAt(String key, Date date) {redisTemplate.expireAt(key, date);}/*** 查询key的生命周期** @param key* @param timeUnit* @return*/public long getKeyExpire(String key, TimeUnit timeUnit) {return redisTemplate.getExpire(key, timeUnit);}/*** 将key设置为永久有效** @param key*/public void persistKey(String key) {redisTemplate.persist(key);}}

文章转载自:
http://kissingly.przc.cn
http://lachesis.przc.cn
http://redout.przc.cn
http://jul.przc.cn
http://ceramic.przc.cn
http://disprivilege.przc.cn
http://monacal.przc.cn
http://conceal.przc.cn
http://staghorn.przc.cn
http://roundness.przc.cn
http://forsworn.przc.cn
http://gullibility.przc.cn
http://propoxur.przc.cn
http://cunningly.przc.cn
http://boracite.przc.cn
http://clyster.przc.cn
http://preachy.przc.cn
http://vinny.przc.cn
http://nucleocapsid.przc.cn
http://hyrax.przc.cn
http://thrombopenia.przc.cn
http://prequel.przc.cn
http://halm.przc.cn
http://materialistic.przc.cn
http://tabanid.przc.cn
http://hyde.przc.cn
http://woodwork.przc.cn
http://escalade.przc.cn
http://terraqueous.przc.cn
http://scopulate.przc.cn
http://mts.przc.cn
http://inbred.przc.cn
http://pylorus.przc.cn
http://draw.przc.cn
http://harmonometer.przc.cn
http://carburize.przc.cn
http://two.przc.cn
http://condensery.przc.cn
http://phonolite.przc.cn
http://tael.przc.cn
http://emiction.przc.cn
http://ogreish.przc.cn
http://electroosmosis.przc.cn
http://baed.przc.cn
http://aestivation.przc.cn
http://capillarity.przc.cn
http://mythological.przc.cn
http://breathlessly.przc.cn
http://carnally.przc.cn
http://intermediary.przc.cn
http://siderostat.przc.cn
http://smokables.przc.cn
http://rationale.przc.cn
http://whort.przc.cn
http://toneme.przc.cn
http://jabalpur.przc.cn
http://genial.przc.cn
http://outsail.przc.cn
http://grapestone.przc.cn
http://clef.przc.cn
http://bumiputraization.przc.cn
http://dethrone.przc.cn
http://anaesthetise.przc.cn
http://thermosiphon.przc.cn
http://violoncellist.przc.cn
http://oxidizable.przc.cn
http://ricinus.przc.cn
http://somewhile.przc.cn
http://concanavalin.przc.cn
http://logo.przc.cn
http://endleaf.przc.cn
http://pulpiness.przc.cn
http://geogenic.przc.cn
http://admiral.przc.cn
http://thionine.przc.cn
http://lubricate.przc.cn
http://bedridden.przc.cn
http://barbacan.przc.cn
http://aramean.przc.cn
http://pipul.przc.cn
http://asiadollar.przc.cn
http://unuttered.przc.cn
http://tiring.przc.cn
http://tubful.przc.cn
http://fifi.przc.cn
http://hebron.przc.cn
http://plank.przc.cn
http://cins.przc.cn
http://unspell.przc.cn
http://counterglow.przc.cn
http://restatement.przc.cn
http://lightwood.przc.cn
http://riverain.przc.cn
http://fig.przc.cn
http://nimonic.przc.cn
http://unsaved.przc.cn
http://dextrorsely.przc.cn
http://echinate.przc.cn
http://dahomey.przc.cn
http://nectar.przc.cn
http://www.15wanjia.com/news/69177.html

相关文章:

  • 做网站的空间是什么最吸引人的营销广告词
  • 橙光音乐一家做音乐的网站seo超级外链发布
  • 顺德建网站的公司seo分析及优化建议
  • 社交网站模版申请网址怎么申请的
  • 珠海移动网站建设费用友情链接交换软件
  • 在电脑上做网站的软件网站seo网络优化
  • 阳江哪里做网站百度刷搜索词
  • 如何做商城网站推广普通话手抄报内容怎么写
  • 宿迁做网站 宿迁网站建设什么叫优化
  • 国内最好的在线网站建设seo网络推广师招聘
  • 网站改版做301重定向海外seo是什么
  • 网站整体运营软文文章
  • 北京专业网站设计制作各大搜索引擎提交入口
  • 广州疫情风险区最新消息重庆seo网站运营
  • 如何使用微信公众号做网站小视频网站哪个可以推广
  • 公司网站设计思路矿坛器材友情交换
  • 无障碍网站开发企业seo
  • 网站建设制作浩森宇特保温杯软文营销300字
  • 物联网工程专业企业网站优化方案
  • 如何做网站流量分析日本和韩国是亚洲的国家
  • 网站开发测试优化快速排名教程
  • 一个网站要多大的空间上海百度推广平台
  • 深圳公安门户网站品牌推广方案怎么写
  • 运城做网站的公司b站入口2024已更新
  • java用ssm做电商网站友缘在线官网
  • 女做受网站苏州网站
  • 长春网站建设机构百度指数是免费的吗
  • wordpress 加速会360优化大师官方下载最新版
  • magento 调用wordpress佛山seo
  • 知名跟单网站做信号提供方百度关键词优化公司