当前位置: 首页 > 面试题库 >

设置Redis中的Hashmap值到期?

阙繁
2023-03-14
问题内容

我如何像使用SETX为常规值那样为Redis中的哈希图设置到期时间。我想为要存储hasmap的会话提供TTL。我可以使用SETEX本身创建Hashmap吗?


问题答案:

不,您不能使用SETEX(这是一个字符串方法)创建哈希。您可以调用EXPIRE哈希键,但这将使整个哈希失效。目前不支持单个哈希键/值对的过期。

更新:

如果要在设置散列的各个元素时在整个散列上设置到期时间,则可以通过多种方式实现。

  1. 使用流水线。流水线操作是一种特殊的操作模式,其中redis客户端快速连续发出多个命令,而不必等待发送下一个命令的答复。这是ruby中的示例:

    redis.pipelined do
    

    redis.hset “foo”, “bar”, 1
    redis.expire “foo”, 300
    end

  2. 使用交易。没有监视的键,这类似于流水线操作(因为事务不能中止)。保证命令可以一起运行和原子运行(多个管道可以交错运行,事务被序列化)

    redis.multi do
    

    redis.hset “foo”, “bar”, 1
    redis.expire “foo”, 300
    end

  3. 使用lua脚本来实现您的自定义HSETEX命令。它会自动执行,您只需要发送一个命令(而不是2(流水线)或4(事务))。



 类似资料:
  • 问题内容: 我想使用camel-redis设置键/值对。我尝试: 但没有喜悦。我得到错误: 尽管有很多有关如何订阅的示例,但我找不到有关如何设置键/值对的单个示例。我该怎么做? 问题答案: 和 (请注意,它们区分大小写)是消息头而不是URI参数

  • 问题内容: 我有一个Redis设置键’a’和值‘1’,‘2’,‘3’。是否可以为集合中的每个键值对设置不同的到期时间。 例如,(’a’,‘1’)应该在60秒后过期,而as(’a’,‘2’)应该在120秒后过期。 问题答案: 抱歉不行。Redis的“容器”(即列表,哈希,集合和排序集合)不支持按成员过期,尽管过去多次要求使用此功能。 但是,您可以实现自己的逻辑以实现该结果。解决此问题的方法有几种-

  • 问题内容: 我在本地计算机上使用Redis,所以我真的不需要设置密码即可通过php客户端连接到服务器(我使用predis作为客户端)。但是,我将应用程序移动到实时服务器,因此我想设置一个密码以连接到我的Redis服务器。 我有几个问题: 我在互联网上检查了如何设置密码,好像我需要在redis.conf中添加密码。我找不到我应该完全添加到配置文件中来设置密码的内容。 另外在predis我应该如何添加

  • 问题内容: 我可以从使用检索值: 但是当我尝试使用Spring时,我没有得到任何数据。我的数据存储为。 有人可以向我指出我在想什么吗? 编辑:我的XML配置为RedisTemplate。 问题答案: 您必须配置串行器。 说明 Redis模板将序列化程序用于键,值和哈希键/值。序列化器用于将Java输入转换为存储在Redis中的表示形式。如果您未进行任何配置,则序列化程序默认为。因此,如果您在Jav

  • 问题内容: 我有一个bash.sh脚本: 其中config.json: 当我运行它时,我得到: ERR未知命令’}’ 如何从json文件正确设置json值? 问题答案: 如果你正在尝试设置 字符串 的值,关键看你的JSON文件的内容(或其他任何与此有关的,包括二进制),最简单的方法是使用选项来 阅读的最后一个参数 逐字的命令, 从。例如: 对于您的示例,它将存储: 要存储JSON数据的紧凑表示形式

  • 我有一个<code>HashMap 有没有比排序HashMap更好的解决方案,然后使用 顺便说一句,我一开始并不一定要使用HashMap,但值设置了顺序,我不想交换键和值,因为浮点值可能会改变好几次。