jjzjj

StackExchange

全部标签

c# - 使用 StackExchange.Redis 的线程安全递增/递减

我正在使用StackExchange.Redis包作为多线程应用程序的共享存储,该多线程应用程序又将同时在多个服务器上运行...所以是多线程;)我有一个最简单的用例是我想对一系列键(即KEY1=4KEY2=7、KEY3=13等)进行基本计数。我将制定业务规则来强制执行给定key所允许的最大允许值。因此,例如,假设KEY1只能达到5...如果两个线程同时触发并试图增加它,我只想让其中一个成功。我相信我可以通过事务来完成此操作,方法是首先获取当前值,然后使其成为值未更改的条件。这会像我期望的那样工作吗?有没有更优雅的方法来做到这一点?publicvoidIncrement(stringke

Azure Redis 缓存 StackExchange.Redis.RedisConnectionException : No connection is available to service this operation: EVAL

Asp.netmvc5应用程序web配置文件是sessionStatemode="Custom"customProvider="RedisSessionProvider">providers>addname="RedisSessionProvider"type="Microsoft.Web.Redis.RedisSessionStateProvider"port="6380"host="XXX.redis.cache.windows.net"accessKey="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"ssl="true"/>providers>ses

c# - 在 StackExchange.Redis 中将对象转换为 HashEntry

我想让redis中的HashSet使用StackExchange.Redis,但是在db.HashSet()中我应该传递HashEntry类型,我如何将对象转换为HashEntry,我知道反射,是否有转换对象的快速代码? 最佳答案 我知道已经超过6年了,但当我搜索时,仍然发现信息在互联网上传播得太多了。所以我决定写在这里,如果有人需要的话。下面有两种方法。ToHashEntries用于将对象写入Redis,ConvertFromRedis用于从Redis读取对象。注意:我使用了Newtonsoft.Json库作为json转换器。pu

c# - 使用 StackExchange.Redis 向 Redis 添加和检索数据集

我是Redis新手。我能够使用此命令将数据存储和检索到redishmsetuser:user112131415我也是通过检索数据hgetalluser:user1我想在我的C#程序中使用stackExchange.redis做同样的事情。我应该如何在C#中执行此操作? 最佳答案 要在散列中设置多个值,您可以调用以下HashSet方法重载:ConnectionMultiplexerredis=ConnectionMultiplexer.Connect("localhost");IDatabasedb=redis.GetDatabase

c# - StackExchange Redis 在使用异步插入/读取数据时丢失了一些键

我确定我们在这里遗漏了一些非常重要的东西,所以希望有人能给我指出正确的方向。提前谢谢你:)我们目前遇到的问题:有时异步操作(读取)不会从异步操作写入的数据库中返回哈希值给我们。例如,一次操作可以返回600个键,下一次键的数量可以是598,下一次:596等等。我们也遇到了短集合的同样问题(当我们在集合中有多达10个键并批量读取10个哈希对象时:有时我们可以获得8个对象,有时6个,一旦我们只得到2个。我们在大约30-40%的操作中遇到了异步方法的问题,迁移到同步操作解决了一些情况-我们已经失去了性能。我们的创建/读取批处理操作示例protectedvoidCreateBatch(Func>

c# - Azure Redis StackExchange.ASP.net MVC 中的 Redis ConnectionMultiplexer

我读到为了连接到AzureRedis缓存最好遵循这种做法:privatestaticConnectionMultiplexerConnection{get{returnLazyConnection.Value;}}privatestaticreadonlyLazyLazyConnection=newLazy(()=>{returnConnectionMultiplexer.Connect(connStinrg);});根据AzureRedis文档:TheconnectiontotheAzureRedisCacheismanagedbytheConnectionMultiplexercl

.net - Stackexchange.Redis 的 fire and forget 是否保证交付?

据我所知,CommandFlags.FireAndForget适用于您不关心响应的情况。即使响应对正在运行的应用程序不重要,它是否也能保证交付? 最佳答案 实际上,Redis协议(protocol)并不真正支持“即发即弃”操作。除了pub/sub流量,所有Redis命令都匹配一个回复,没有办法告诉Redis服务器省略回复。现在一些客户端(如StackExchange.Redis)通过协议(protocol)的异步实现来模拟“即发即弃”模式。实际上,StackExchange.Redis中的“即发即弃”模式与“异步”模式非常相似,只是

c# - StackExchange Redis - StringSet 与 SetAdd 和过期

在StackExchange.Redis,STRING操作允许设置到期时间,例如:TaskStringSetAsync(RedisKeykey,RedisValuevalue,TimeSpan?expiry=null,Whenwhen=When.Always,CommandFlagsflags=CommandFlags.None);为什么SET操作不?TaskSetAddAsync(RedisKeykey,RedisValue[]values,CommandFlagsflags=CommandFlags.None);基本上,这是我想要实现的目标:给定一个List,将项目添加到Redis

c# - 是否有任何 StackExchange.Redis 示例项目

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我们正在考虑实现Redis来优化我们的网络应用程序检索自定义文本描述和页面标签。我们想使用StackExchange.Redis。是否有任何示例项目或演练有助于更轻松地理解项目?

c# - StackExchange.Redis 中的刷新/清空数据库

我正在使用StackExchange.Redis在我的应用程序中存储键/值。我现在需要刷新Redis正在使用的整个数据库。我通过命令找到了一种方法HowdoIdeleteeverythinginRedis?但如何使用StackExchange.Redis执行此操作?我找不到任何方法吗?我在IDatabase对象上搜索了Empty、RemoveAll等,但一无所获。 最佳答案 最简单的方法是使用IServer的FlushDatabase方法或FlushDatabaseAsyncConnectionMultiplexerredis=Co