栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用RedisTemplate从Redis获取设置值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用RedisTemplate从Redis获取设置值

简而言之

您必须配置串行器。

说明

Redis模板将序列化程序用于键,值和哈希键/值。序列化器用于将Java输入转换为存储在Redis中的表示形式。如果您未进行任何配置,则序列化程序默认为

JdkSerializationRedisSerializer
。因此,如果您
key
在Java代码中要求输入密钥,则序列化程序会将其转换为

"xacxedx00x05tx00x03key"

Spring Data Redis使用这些字节作为查询Redis的关键字。

您可以使用Spring Data Redis添加数据并使用进行查询

redis-cli

template.boundSetOps("myKey").add(new Date());

然后在

redis-cli

127.0.0.1:6379> keys *1) "xacxedx00x05tx00x05myKey"127.0.0.1:6379> SMEMBERS "xacxedx00x05tx00x05myKey"1) "xacxedx00x05srx00x0ejava.util.Datehjx81x01KYtx19x03x00x00xpwbx00x00x01Nxcf#x9cHx"

如您所见,String和Date被序列化为代表Java序列化对象的一些疯狂字节。

您的代码建议您要存储基于字符串的键和值。只需设置

StringRedisSerializer
在你的
RedisTemplate

Java配置

redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(new StringRedisSerializer());

XML配置

<bean id="stringSerializer" /><bean id="redisTemplate"      p:connection-factory-ref="jedisConnectionFactory">    <property name="keySerializer" ref="stringSerializer"/>    <property name="valueSerializer" ref="stringSerializer"/></bean><bean id="jedisConnectionFactory"      p:host-name="myhostname" p:port="6379"/>

运行代码后的输出如下所示:

valuekey[value]

Spring Data Redis有一些有趣的序列化器,可以在各种系统之间交换消息。您可以从内置的序列化器中选择

  • 杰克逊·杰森·雷迪斯序列化器
  • Jackson2JsonRedisSerializer
  • JdkSerializationRedisSerializer(默认)
  • OxmSerializer
  • GenericToStringSerializer

或创建自己的。

我使用Spring Data Redis 1.5.1.RELEASE和jedis 2.6.2来验证问题的结果。HTH,马克

进一步阅读:

  • Spring Data Redis:序列化器
  • 要点包含您的示例


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/364174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号