商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Java中 String 字符串在 Redis 中怎么用 set 和 get 存储

Java中 String 字符串在 Redis 中怎么用 set 和 get 存储

  发布于2026-07-15 阅读(0)

扫一扫,手机访问

Ja va 中的 String 字符串可以直接用 Redis 的 setget 命令来存储和读取,而且不需要额外折腾什么序列化。原因其实很简单——没什么玄乎的:Redis 本身只认字符串(而且是 binary-safe),而 Ja va 的 String 经过 UTF-8 编码后,本质上就是一组字节数据,天然就适配。

Ja va中 String 字符串在 Redis 中怎么用 set 和 get 存储

最常用的方式:用 Jedis

Jedis 算是 Redis Ja va 客户端里的“老面孔”了,操作起来直来直往,没什么门槛:

  • 连接上 Redis 之后,直接 jedis.set("key", "value") 就能把字符串存进去
  • 想读出来,调用 jedis.get("key"),返回结果依然是 String 类型
  • 有一点需要留个心:Jedis 默认是 UTF-8 编码,所以只要你的 Ja va 字符串本身没有什么奇怪的控制字符,基本不会出现乱码

生产环境更推荐:用 Lettuce

如果你的项目对并发要求比较高,或者在用响应式编程,那 Lettuce 会是更好的选择——它是线程安全的,也支持异步操作:

  • 同步操作:redisSyncCommands.set("user:name", "张三"),和 Jedis 一样直观
  • 异步操作:redisAsyncCommands.set("user:age", "25").thenAccept(ok -> {...}),配合回调来处理结果
  • 同样是默认 UTF-8 编码,不需要手动处理编码解码那一套

存中文的时候要留意什么?

其实绝大多数场景下,你都不需要额外做什么特殊处理。但有两个地方值得确认一下:

  • 确保你的 Ja va 文件编码确实是 UTF-8(IDE 和编译设置要统一,这是个老生常谈但又容易踩的坑)
  • Redis 服务端本身不需要配置什么编码——它根本不关心你存的内容是什么语义,只管存字节
  • 如果你需要用其他语言(比如 Python)来读这些数据,记得也按 UTF-8 来解码,不然可能会看到一堆“外星文字”

加个过期时间:set 操作还能这么玩

实际开发里,经常需要给缓存设置一个生存时间(TTL)。这一点,Jedis 和 Lettuce 都支持得很到位:

  • Jedis 的做法:jedis.setex("token:abc", 3600, "eyJhbGciOi..."),单位是秒,简单直接
  • Lettuce 的做法:redisSyncCommands.set("config:version", "v2.1", SetArgs.Builder.ex(3600)),用 SetArgs.Builder.ex() 来指定过期时间
  • 另外,set(key, value, SetArgs) 这种写法还可以组合更多参数,比如 NX(只在键不存在时设置)或 XX(只在键已存在时设置),非常灵活
本文转载于:https://www.php.cn/faq/2822798.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注