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

如何使用ServiceStack将多个读取命令传递给Redis

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

如何使用ServiceStack将多个读取命令传递给Redis

在ServiceStack.Redis客户端上,您可以使用

GetValues
GetValuesMap
(字符串和T
api都可用)在单个调用中获取多个值(使用MGET)。仅返回现有项,
GetValues
如果您的模型上有
Id,
GetValuesMap
返回现有键及其值的字典,您可以通过它们进行检测。

由此,您可以确定并从数据库中获取所有缺少的ID。如果您无论如何要从Redis获取现有值,那么这是最佳策略,因为您可以通过一次调用获取所有值并确定现有键。

替代的“单次通话”选项

使用管道或事务

如果出于某种原因您真的只想检查Redis中密钥的存在而不获取它们,那么您可以使用Transaction
/或Pipeline(均已管道化)来排队多个操作,这些操作在1个套接字写入中发送给Redis。这是RedisStackOverflow演示中的一个示例,该示例排队30个操作,这些操作将在单个批处理中发送和执行。

使用LUA脚本

如果Redis>
v2.5x,则可以使用Redis的服务器端LUA支持来创建和执行复合操作。您可以从ServiceStack.Redis客户端中的IRedisClient使用以下API
来执行服务器端LUA脚本:

string GetevalStr(string body, int numOfArgs, params string[] args);int GetevalInt(string body, int numOfArgs, params string[] args);List<string> GetevalMultiData(string body, int numOfArgs, params string[] args);


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

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

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