在Redis-ServiceStack中批量创建密钥 C#
在" redis serviceStack客户端"中有什么方法可以在" redis serviceStack client "中堆叠键(SETS)?当然,不放置for循环. REDIS中有一个命令可以做到这一点: mset 但是,我找不到任何实现此命令的 ServiceStack.Redis 客户端. ex: MSET key1 "val1" key2 "val2" 更新: @mythz suggested a way to create multiple SETS but with single member setall(). 此外,我找到了一种批量批量将成员添加到单个组件的方法, addrangetoset(字符串setID,列表项目) 但是,有什么办法可以在创建集合时添加多个成员. 像 XXXCOMMAND key1 "val11","val12","val13" key2 "val21","val22" 解决方案 You can
16 2024-04-26
编程技术问答社区
分布式锁在RedLock.net上不工作
我想将redis用于分布式锁.我正在使用 redlock.net.net nuget软件包. 但是线程能够获取锁,即使是另一个线程也已经获得了锁. 这是示例代码: public void Demo(RedLockFactory redLockFactory) { Parallel.For(0, 5, x => { TimeSpan expiry = TimeSpan.FromSeconds(30); var wait = TimeSpan.FromSeconds(10); var retry = TimeSpan.FromSeconds(1); string user = $"User:{x}"; using (var redLock = redLock
16 2024-04-26
编程技术问答社区
使用 Redis 背板的 Signalr 无法传播信息
我有一个.NET 4.5 MVC应用程序,我最近将其移至AWS,因此我们需要在SignalR实现中添加背板.我遵循了 https:/https:/https://learn.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis .我已经安装了Nuget软件包,当前的配置看起来像: [assembly: OwinStartup(typeof(SignalrBootstrapper))] namespace app { public class SignalrBootstrapper { public void Configuration(IAppBuilder app) { var scaleoutConfig = new RedisScaleoutConfiguration(ConnectionStrings.Re
20 2024-04-26
编程技术问答社区
ServiceStack.Redis。PooledRedisClientManager和RedisManagerPool等待Prev req完成
我正在测试Redis" Full Duplex"通信,例如并阅读然而,在测试项目中,在Github上找到,在我看来,在我看来,在我看来,这是不是这种情况,否则我缺少一些东西.解决方案包括: EventPublisher:.NET Core Winforms发布Hello DTO的应用程序 EventConsumer:.NET Core Winforms应用程序,具有用于处理Hello hello dtos的服务 我在helloservice Any(Hello req)内添加了一个螺纹.但是,情况似乎并非如此. HelloResponse s在同一线程上是一个接一个地处理的.请看一下这个简短的视频: http://somup.com/cyhey8inml 在这里,我以快速连续将三个Hello DTO向MQ发射,在VS中的输出窗口中,您可以看到三个DTO彼此处理. 我找不到PooledRedisClientManager nor RedisManage
16 2024-04-25
编程技术问答社区
ServiceStack Redis在检索数据方面的功能是什么?
不确定这是否是问题的最佳标题...也许有人可以为我重命名吗? 我的问题是关于REDIS的C#ServiceStack包装器中的读取和组合数据的性能以及呼叫在内部的工作方式. 我将解释两种情况,希望最终结果能产生.一种方案具有附加到交易的类别ID列表,因此可以独立存储类别. 问题:我的最终目标是检索具有"食物"类别的所有交易. 我试图将其他明确的了解可以帮助我理解.考虑到有10,000笔交易,每笔交易平均有3个类别. 注意:有一个相关的问题,请 servicestack.net redis:存储相关对象与相关对象ID 但是没有解释效率. 示例a public class Transaction { public List CategoryIds; } 示例b public class Transaction { public List CategoryNames; } 代码 var
8 2024-04-25
编程技术问答社区
从Redis映射数据的有效方法
我正在与redis和serviceStack.redis一起玩.我最初使用"自动应用程序"将缓存的对象映射到域对象中,但这很慢.使用别人的示例,我设置了一个自定义映射器,但这也确实很慢. 以下代码有明显的错误?从Redis绘制1000个项目需要4-5秒. 是介绍滞后的" getByids"客户端方法,但我想要一种有效的方法来存储集合作为REDIS中的ID列表,看不到另一种将这些转换为域对象列表的方法. . 谢谢! interface IMapToNew { TTarget Map(TSource source); } interface IMapToExisting { void Map(TSource source, TTarget target); } class FullEmployeeMapper : IMapToNew
14 2024-04-25
编程技术问答社区
无法将数据保存到REDIS的Azure Cache
我试图第一次在Azure上使用Redis.我尝试了他们不起作用的示例应用程序,因此我试图以最小的例子为例,但是我仍然遇到例外.这是测试代码 using StackExchange.Redis; using System; using System.Threading.Tasks; namespace RedisLib { public class Redis { private ConnectionMultiplexer connection; public async Task SaveStringAsync(string key, string value) { try { var connectionString = Helpers.Constants.REDIS_CONNECTION_STRING;
16 2024-04-25
编程技术问答社区
在 Redis 中存储字典的字典(StackExchange.Redis)
我想在redis中存储字典词典.例如我有产品,订单,客户等...业务实体,它们都有ID和其他相关属性. 我正在使用最新版本的stackexchage.redis c# 期望: 1.当我使用ID 10保存产品时,应该首先检查是否 产品类型实体可用 然后检查存在的产品ID 10,如果是,则返回全产品. 2.其他实体相同. ID 10也可以用于订单实体. 键:打字名称值:dict(int,type) 每当发生任何写作时,都不想更新整个字典,只想在字典中添加新记录或更新记录. 所以, 1.每当要求所有产品时,我都可以返回内部字典. 2.如果要求单个产品,我可以返回一个产品 3.如果要求所有产品删除,则将一口气删除所有内容. 4.使用标签设置为每个pucuderid设置时间? 解决方案 似乎您需要 redis Hashes .您可以为产品,订单等创建哈希亚,并通过其密钥存储每个项目.这是一个示例: 将产品添加到哈希/字典中 redis>
20 2024-04-24
编程技术问答社区
这个RedisCache的实现应该使用哪种数据类型?
i具有以下DB表结构: Id(string) Type(string) BeginDate(datetime) CloseDate(dateime) Source(string) "+ww100" "L" 23-JAN-20 23-APRIL-20 XYZ "+ww100" "L" 23-JAN-20 23-APRIL-20 XYZ --- --- --- --- --- 您可能已经观察到,该表没有任何主要键,这意味着可能会有重复的数据.现在,我需要将此表数据存储在redis缓存中,然后将其检索. 示例:我可能想基于ID搜索,即使有多个记录,我也想检索它们并进行处理. 既然我是Redis的新手,您能建议我使用哪种数据类型用于此用例?由于密钥不是唯
12 2024-04-24
编程技术问答社区
ServiceStack.Server。Redis服务器集成在ServiceStack库中?
我想澄清是否正确理解ServicEstack.Server功能. on 此页面 ,Servicestack.server.server.server api, 创建Redis MQ服务器,该服务器在其自己的背景线程上处理每个消息 a am我在假设这是独立的redis服务器时,我纠正://redis.io" rel =" nofollow noreferrer"> redis软件或因为,如果我关注 this示例,并且没有其他运行的Redis Server ,我得到 '无法建立连接,因为目标机积极拒绝了它. 127.0.0.1:6379' 这条线 var redisFactory = new PooledRedisClientManager("localhost:6379"); 启动客户,并试图连接到6379,并且自然失败.然后在创建MQServer的行中使用redisFactory,这对我来说很奇怪: var mqHost = new Redi
10 2024-04-24
编程技术问答社区
如何从Redis(pub/sub)保存和检索有日期范围的通道数据?
最初,我询问了询问.rdb文件,这不是我想做的 - 我将查询活动服务器. 我将使用RDB快照来启动一个项目,我们将在酒吧/子方案中使用Redis. a .net WCF客户端将通过 marc gravell's booksleeve 并接受传入请求. 启用了RDB快照,将创建增量快照. 我希望客户能够根据给定的频道和日期范围检索数据集.我当时认为我会使用相同的WCF客户端进行阅读和写入(除非有任何显着异议).我不清楚用于查询服务器的哪种方法检索日期范围,引导特定数据并通过WCF客户端进行交付. 我可以通过BooksLeeve(如果是的话)来实现此数据查询功能,或者是否还有其他,有更好的访问包装器,例如 servicestack.redis . 最好将Booksleeve用于写入,而ServiceStack.Redis作为客户? - 更新 - 我的快照设置为默认值: save 900 1 save 300 10 save 60 用
8 2024-04-23
编程技术问答社区
如何在所有集群中访问套接字会话
我正在使用pm2以群集模式设置socket.io. 我正在使用socket.io-redis软件包,并且在集群模式下工作正常. 但是,当我想访问所有连接的插座时,就会出现问题.因为进程在集群模式下其他过程中的插座连接不了解. 我以为socket.io-redis跟踪所有连接的插座及其所有会话信息,但事实并非如此. 是否有任何方法或解决方案可以访问socket.io/nodejs中的所有进程中存在的所有插座连接? 解决方案 socket.io-redis确实在某种意义上保持跟踪. 来自他们的文档 " redis适配器扩展了内存适配器的广播功能:数据包也已发布到redis频道(有关频道名称的格式,请参见下文). 每个socket.io服务器接收此数据包并将其广播到其自己的连接插座列表." 基本上,redis用作经纪人告诉每个插座服务器以x频道等发射.允许您在集群模式下具有socket.io服务器,但是如您所提到的,当您提到的时可能会很短.需要
32 2024-04-23
编程技术问答社区
Redis的Pop列表项目 按项目的数量
我有一个分布式系统,在一个地方,我在redis列表中插入大约10000个项目,然后将我的多个应用程序挂钩挂接到处理项目.我需要的是拥有一些带有数量的Methhod的ListleftPop类型.它应该从redis列表中删除项目,然后返回我的呼叫应用程序. 我正在使用stackexchange.resis.extension 我当前的方法只是为了获得(不是pop) public static List GetListItemRange(string key, int start, int chunksize) where T : class { List obj = default(List); try { if (Muxer != null && Muxer.IsConnected && Muxer.GetDatabase()
10 2024-04-22
编程技术问答社区
如何使用 Azure Worker Role 和 OWIN 扩展 SignalR
SignalR使用Azure Web角色缩放.但是,当我在Azure Worker角色中使用自托管OWIN项目时,当添加多个实例时,SignalR将开始出现问题.为了记录,我的项目将REDIS用于背板. 将Azure Worker角色实例提高到一个之外时,客户连接将随着错误随机失败" ConnectionID处于不正确的格式" .我相信,这是由于负载平衡引起的单个客户的谈判跨越多个服务器而引起的;我不认为参加谈判的多个服务器可以解密数据(封面下的DPAPI?). . 我尝试在app.config中设置验证key和netugntionKey,但这似乎并没有有所不同.问题仍然存在.同样,该项目将作为网络角色(IIS)效果很好,而不是工人角色(Owin self-Host). 假定这是DpapidataprotectionProvider的问题,我如何确保提供商在多个服务器/实例中呈现相同的加密/解密? 解决方案 SignalR(dpapidataprotectio
14 2024-04-22
编程技术问答社区
.NET Core 3中的Redis Cache是否需要使用Stack Exchange包?
in .net core 2.2,在我的Startup.cs中,我有以下内容: public void ConfigureServices(IServiceCollection services) { services.AddDistributedRedisCache(...); } 但是现在,在.net core 3.0中,找不到AddDistributedRedisCache方法.在跟随本教程来自Microsoft,他们在示例中使用services.AddStackExchangeRedisCache.这是否意味着我需要为REDIS安装堆栈Exchange Nuget软件包?为什么删除了本地Microsoft的REDIS客户端解决方案? 解决方案 它花了一些时间在他们的git存储库中进行了挖掘,但已被删除.删除没有发生在当前存储库中, https://github.com/aspnet/extensions ,但是在上一个存储库中,
20 2024-04-22
编程技术问答社区
Stackexchange.Redis超时和socketfailures
我使用Azure Redis(使用STACKEXCHANGE.REDIS)作为缓存存储,并且通常工作正常.但是我会不时地遇到超时错误,我无法确定为什么会发生. 我的redis连接设置: value="dev.redis.cache.windows.net,ssl=true,password=secret,abortConnect=false,syncTimeout=3000" 我在同一第二个(多个调用)中获得了所有这些例外:[我在获取操作上都会得到这些例外.几乎所有这些例外都在Stringset&Stringget上.我很少在标签或散布上得到例外] Timeout performing SET {key}, inst: 1, mgr: ExecuteSelect, queue: 6, qu=0, qs=6, qc=0, wr=0/0, in=0/0 SocketFailure on SET SocketFailure on SET No connection is
26 2024-04-22
编程技术问答社区
当试图在redis中插入2个集合的750个项目时,StackExchange出现了TimeoutException。
最初,我正在尝试将一些项目集合到2个redis集中(也许这根本不是好主意,但是...). 我试图一次添加的条目: 750+ 目前,我尝试使用stackexchange.redis 客户端执行此操作时,我会收到超时例外,这是我能够使用"传统" booksleeve 我之前已经调查过的客户. 所以,我在某些事情上肯定是错误的(甚至在我的Intial Booksleeve实施中),只是想弄清楚到底是什么问题. 以下是我与Redis客户端使用的代码的示例: Booksleeve: using (var tran = connection.CreateTransaction()) { Task lastOpTask = null; tran.SuspendFlush(); try { // perform required configurations/ actions tran.Sets.Add(_redisConfiguration.DbNumber, Cur
16 2024-04-21
编程技术问答社区
将数据从字典批量设置到 Redis 中
我正在使用stackexchange redis db使用Batch插入键值对的字典: : private static StackExchange.Redis.IDatabase _database; public void SetAll(Dictionary data, int cacheTime) { lock (_database) { TimeSpan expiration = new TimeSpan(0, cacheTime, 0); var list = new List>(); var batch = _database.CreateBatch(); foreach (var item in data) { string serializedObject = Jso
26 2024-04-21
编程技术问答社区
StackExchange.Redis 如何订阅多个频道
如何订阅多个渠道?据我了解,需要传递的频道类以订阅方法,支持模式或单个通道订阅.是否可以在一个命令中订阅多个频道? 示例: 客户端正在在3个不同的频道上发布:" Channela"," ChannelB"和" ChannelC".如何在一个命令中订阅这些频道?我知道我可以使用诸如"频道*"之类的模式,但是,如果无法通过单个模式描述这些频道怎么办?订阅" Channela,ChannelB,Channelc"似乎不起作用 - 我无法从ChannelMessagequeue收到任何消息. 解决方案 您可以使用 psubscribe : PSUBSCRIBE Channel* 应该收听以"频道"开头的任何频道. 或者您可以使用订阅带有多个频道: SUBSCRIBE ChannelA ChannelB ChannelMessageQueue 其他解决方案 psubscribe已在IRedissubscription接口下使用,然后我们可以使用 sub
12 2024-04-21
编程技术问答社区
Azure Redis无法连接到Redis服务器
我正在使用StackExchange.Redis.StrongName 1.0.394,并且正在尝试连接到我的Azure Redis,但是当我运行项目时,我一直在遇到此错误: RedisConnectionException: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. SocketFailure on PING 奇怪的是,如果我使用StackExchange.Redis 1.0.394一切都很好,但是我需要stronstname版本才能使用redissessionStateProvider. 这是连接到redis的代码: private static ConnectionMultiplexer Connection { get
22 2024-04-21
编程技术问答社区