如何在ServiceStack.Redis中将TTL设置为列表值?

时间:2017-08-03 06:53:03

标签: redis servicestack servicestack.redis

我在ServiceStack.Redis中有一个列表,我想设置一个TimeSpan使它过期。
换句话说,如何在ServiceStack.Redis中调用以下redis命令

  

EXPIRE ListId ttl

我想要的方法是:

client.Lists(listId, timespan);

我的问题有解决办法吗?

1 个答案:

答案 0 :(得分:2)

使用IRedisClient和IRedisNativeClient上的新Custom和RawCommand API,您现在可以使用RedisClient发送您自己的可以调用adhoc Redis命令的自定义命令:

public interface IRedisClient
{
    ...
    RedisText Custom(params object[] cmdWithArgs);
}

public interface IRedisNativeClient
{
    ...
    RedisData RawCommand(params object[] cmdWithArgs);
    RedisData RawCommand(params byte[][] cmdWithBinaryArgs);
}

这些自定义API采用灵活的object []参数,该参数接受任何可序列化的值,例如: byte [],string,int以及任何用户定义的复杂类型,它们透明地序列化为JSON并通过线路以UTF-8字节发送。

Redis.Custom("SET", "foo", 1);

<强>结果:

client.Custom("EXPIRE", "list-id", "100");

请参阅ServiceStack github