c#-使用.NET进行Redis优化,以及如何从哈希中存储和获取元素的具体示例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-使用.NET进行Redis优化,以及如何从哈希中存储和获取元素的具体示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2082字,纯文字阅读大概需要3分钟。
内容图文
![c#-使用.NET进行Redis优化,以及如何从哈希中存储和获取元素的具体示例](/upload/InfoBanner/zyjiaocheng/880/d9046ab3126842d1b48e7eff2b9617f9.jpg)
我在Redis列表中存储了超过15000个POCO元素.我使用ServiceStack来保存并获取它们.但是,我对将它们放入网格中时的响应时间不满意.如我所读,将这些对象存储在散列中会更好-但不幸的是,我找不到适合我的案例的任何好例子:(
这是我用来使它们进入网格的方法
public IEnumerable<BookingRequestGridViewModel> GetAll()
{
try
{
var redisManager = new RedisManagerPool(Global.RedisConnector);
using (var redis = redisManager.GetClient())
{
var redisEntities = redis.As<BookingRequestModel>();
var result =redisEntities.Lists["BookingRequests"].GetAll().Select(z=> new BookingRequestGridViewModel
{
CreatedDate =z.CreatedDate,
DropOffBranchName =z.DropOffBranch !=null ? z.DropOffBranch.Name : string.Empty,
DropOffDate =z.DropOffDate,
DropOffLocationName = z.DropOffLocation != null ? z.DropOffLocation.Name : string.Empty,
Id =z.Id.Value,
Number =z.Number,
PickupBranchName =z.PickUpBranch !=null ? z.PickUpBranch.Name :string.Empty,
PickUpDate =z.PickUpDate,
PickupLocationName = z.PickUpLocation != null ? z.PickUpLocation.Name : string.Empty
}).OrderBy(z=>z.Id);
return result;
}
}
catch (Exception ex)
{
return null;
}
}
请注意,我使用的是redisEntities.Lists [“ BookingRequests”].GetAll(),这会导致性能问题(我只想使用redisEntities.Lists [“ BookingRequests”],但是在编辑后我失去了网格的最新更新)
我想知道将它们保存到列表中是否是一个好方法,因为对我而言,拥有快速的网格非常重要(我现在在分页时只有1秒,这是巨大的).
请指教!
解决方法:
首先,您不应该每次都像RedisManagerPool实例那样创建一个新的Redis Client Manager,在您的App中应该只有一个单例的RedisManagerPool实例可以解决所有客户端问题.
但是,否则我会重新考虑您的数据访问策略,批量下载15,000个项目不是理想的策略.您可以选择create indexes by storing ids in Sets,也可以将项目存储在一个排序集中的项目中,该项目的值可以像递增的id一样进行分页,例如:
var redisEntities = redis.As<BookingRequestModel>();
var bookings = redisEntities.SortedSets["bookings"];
foreach (var item in new BookingRequestModel[0])
{
redisEntities.AddItemToSortedSet(bookings, item, item.Id);
}
这样,您将能够批量获取它们,例如:
var batch = bookings.GetRangeByLowestScore(fromId, toId, skip, take);
内容总结
以上是互联网集市为您收集整理的c#-使用.NET进行Redis优化,以及如何从哈希中存储和获取元素的具体示例全部内容,希望文章能够帮你解决c#-使用.NET进行Redis优化,以及如何从哈希中存储和获取元素的具体示例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。