草庐IT

redis-sharp

全部标签

Redis 使用 RDB 和 AOF 文件作为磁盘持久化

我们在生产中使用6GB数据大小的redis服务器,最初我们认为Redis只能用作内存缓存,如果它重新启动,那么我们可以从持久性数据存储中重新填充,停机时间最短。现在我们意识到从持久性存储中重新填充数据根本不是一个好主意,它会导致主要的服务停机。我们想通过结合使用RDB和AOF来评估Redis持久化选项。我们尝试在测试环境中每小时拍摄一次RDB快照并以一秒的间隔提交到AOF文件。AOF文件仅在测试环境中变得太大。我们尝试分析AOF文件内容并注意到很多键我们不想持久化到磁盘,我们只需要在redis内存中。有什么方法可以在登录AOF文件时停止记录某些类型的键(阻止列表键)

caching - Azure Redis 缓存延迟

我正在开发一个具有Web作业和Azure函数应用程序的应用程序。Web作业生成redis缓存供函数应用使用。缓存大小约为10兆字节。我正在按照建议使用延迟加载。我仍然发现整体缓存操作很慢。根据我正在处理的文件的大小,我最终可能会调用Redis缓存多达100,000次。想知道我是否需要将缓存数据保存在本地变量中,而不是每次都从redis中读取它。有没有人在访问Redis时遇到任何延迟?在C#函数应用程序中创建单例对象并根据某些计时器或其他逻辑刷新它是否有意义? 最佳答案 你能不能在你的使用中考虑到这一点,这是azurerediscas

redis - 如何高效地将数据从flink管道写入redis

我正在Apacheflinksqlapi中构建管道。管道进行简单的投影查询。但是,我需要在查询之前和查询之后再写一次元组(恰好是每个元组中的一些元素)。事实证明,我用来写入redis的代码严重降低了性能。即flink以非常小的数据速率产生背压。我的代码有什么问题,我该如何改进。请有任何建议。当我停止向redis写入前后性能都非常出色。这是我的管道代码:publicclassQueryExample{publicstaticLongthroughputCounterAfter=newLong("0");publicstaticvoidmain(String[]args){intk_par

Redis - 获取集群中的总数据集大小

当设置并运行Redis实例时,可以通过查看used_memory_dataset字段从以下命令的输出中检索数据集大小(以字节为单位)。./redis-cli-h-pinfo但是,当我有多个实例在集群模式下运行时,如何检索整个集群的数据集大小?redis-cli工具是否仍可用于此类基于集群的命令? 最佳答案 从Redisv5开始,cli包括cluster-smarts。您可以使用以下形式调用命令,例如INFO,在所有节点上:redis-cli--clustercallip:portcommand要计算数据集的总大小,您必须将不同的回复

redis - Redis集群上的Lua脚本

我有一个Redis集群,我想在目标节点上执行LUA脚本。当我这样做时,我从Redis集群收到一条错误消息,指出键必须在同一个SLOT上,但脚本仅在1个键上执行两个命令。ifredis.call('HEXISTS','TEST',KEYS[1])==1thenredis.call('HSET','TEST',KEYS[1],ARGV[1])return1endreturn0我尝试使用HashTagKey,但它不起作用。 最佳答案 您收到此错误是因为您正在尝试访问名为TEST的Rediskey,但不要通过在EVAL命令中列出它来让Red

redis - 如何在Redis中添加条件(过滤器)

我有这样的CSV:key,fname,lname,email,authorized1,mike,gote,mike@gmail.com,12,joe,doe,joe@gmail.com,03,mark,ding,mark@gmail.com,1我可以根据键(1,2,3)存储在redis中,但只需要获得授权的用户(authorized==1)。如何实现?谢谢 最佳答案 您可以将csv放入此数据结构中。您可以使用user:{email}这样的键创建hashmap例如:你可以让散列键像-user:mike@gmail.com键如fname

redis - 在redis中为不存在的键设置多个键的选项?

来自MSETNX的文档:Setsthegivenkeystotheirrespectivevalues.MSETNXwillnotperformanyoperationatallevenifjustasinglekeyalreadyexists.我想执行一个操作来添加redis中不存在的键并跳过那些已经存在的键。是否有执行此类操作的任何命令? 最佳答案 抱歉,如果在这里陈述显而易见的话,但是EVAL/EVALSHA+一个简单的Lua脚本可以轻松高效地完成这项工作。 关于redis-在re

redis - psubscribe with '*' 模式是个坏主意?

我正在尝试使用redis和node.js设置一些pubsub东西,我想知道psubscribe到*是否是个坏主意模式(所有channel),然后在该消息处理程序中自行处理“channel路由”。首先,我关心的是性能和容量方面的可扩展性。我想我可以猜到,如果我有越来越多的不同目的的channel,这可能很难管理。除非我为它构建了一个非常好的框架/抽象。我想我的问题已经很清楚了。此外,如果有旨在解决此问题的现有框架,我很想在评论中听到它们。 最佳答案 我认为这样做是个坏主意,除非您想实现Redispubsub不支持的功能,例如使用正则表

redis - 将可变数量的参数传递给 Redis Lua 脚本

我正在使用EVAL将几个参数传递给我的Lua脚本。但是,最后一个参数是可选的,它可以传递也可以不传递给EVAL。如何在RedisLua脚本中检查参数是否存在?例如,ARGV[3]是否存在。 最佳答案 ifARGV[3]then--userpassinARGV[3]else--NoARGV[3]end 关于redis-将可变数量的参数传递给RedisLua脚本,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

redis - 什么是 REPL 以及如何/何时发挥作用?

阅读关于redis的帖子我看到了这个词:REPL。有人能告诉我它是什么以及它在编程过程中如何发挥作用,或者添加一些简单的实际示例或场景吗? 最佳答案 ReadEvaluatePrintLoop-基本上,您在使用命令行shell时获得的环境。 关于redis-什么是REPL以及如何/何时发挥作用?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2888061/