草庐IT

Redis_Proxy

全部标签

scala - Redis 与 Redisson 框架在 Scala 中的不可预测行为

我将Redis和Redisson框架与Scala一起使用,在其中实现了分布式Set和Publish\Subscribe命令。当系统收到消息后访问Set时,框架的整个行为变得不可预测。以下是创建它的异常和源代码。有任何想法吗?importorg.redisson.RedissonClientimportorg.redisson._importorg.redisson.core.{RTopic,MessageListener}importorg.scalatest._importorg.slf4j.LoggerFactoryobjectRedissonTest{valconfig=newC

ruby-on-rails - Redis flushall 命令被随机调用

我在生产中有一个使用sidekiq(使用redis)的ruby​​应用程序,我设法发现正在调用flushall命令,这会导致数据库被删除(从而删除所有已处理和计划的作业)。我不知道或不明白是什么原因造成的。有谁知道我如何开始跟踪对flushall的调用?谢谢, 最佳答案 很可能您的Redis服务器在没有任何保护的情况下对公共(public)网络开放-这只是在招惹麻烦,因为任何人都可以连接并造成比FLUSHALL更大的破坏。如果是这种情况,至少在烧毁受感染的服务器后使用密码身份验证-攻击者可能已经获得了对您服务器操作系统的访问权限,并

php - 使用 PHP 从 Redis 中选择特定模式的所有关键数据

我正在使用PHPRedis为此。我需要创建脚本,将模式为mobile*的所有key从一个Redishost1复制到host2。我通过从host1中选择所有具有模式mobile*的key来实现这一点。然后使用get键方法遍历每个键以返回数据。然后,我使用set方法为host2设置key:$auKeys=$redis->keys("mobile*");foreach($auKeysas$key){$data=$redis->get($key);$redis2->set($key,$data,6000);echo$key;}问题是这大约需要5分钟-我需要将其缩短到2-3分钟。还有其他方法吗?

redis - 如何序列化为字符串然后反序列化(对于 Redis)?

x=IOBuffer()serialize(x,"ll")readall(x)#""为什么readall(x)返回一个空字符串?更新看来我必须这样做或者:x=IOBuffer()serialize(x,"ll")seekstart(x)readall(x)或x=IOBuffer()serialize(x,"ll")takebuf_string(x)但他们都给我UnicodeError:invalidcharacterindex最终我想获得序列化对象的字符串表示,并将其存储到Redis中。然后从Redis中获取字符串,然后从中反序列化。解决方案x=IOBuffer()serialize(

lua - 如何使用 Redis lua 脚本调用具有不同参数的不同命令

我有一个场景,在运行redis命令之前需要进行验证。仅当验证通过时才应运行该命令。我正在考虑使用lua脚本来做到这一点。需要与其参数一起运行的命令应指定为lua脚本的参数。这个脚本的逻辑是这样的形式:ifverify(KEYS[1],ARGV[1])thenredis.call(ARGV[2],KEYS[2],redis.call方法中所需的参数数量取决于执行的命令(ARGV[2])。这些参数通过ARGV[3]到ARGV[n]指定给脚本,其中n>=3。我想了解如何将这些参数传递给调用方法。 最佳答案 您需要将剩余的参数复制到另一个表

redis - 在redis 2.8中,如何修改值并保持TTL不变

我有Redis2.8.19。在下面的序列中,我希望在修改mykey的值时不会重置原来的60秒过期时间。127.0.0.1:6379[10]>SETmykeyAEX60NXOK127.0.0.1:6379[10]>TTLmykey(integer)53127.0.0.1:6379[10]>GETSETmykeyB"A"127.0.0.1:6379[10]>TTLmykey(integer)-1127.0.0.1:6379[10]>GETmykey"B"在GETSET之后,我希望TTLmykey返回大约40秒而不是-1.是否可以在不丢失或重置超时的情况下修改该值?感谢您提供任何提示或解决方

Python redis 根据时间戳获取列表

我正在使用一个流,该流以时间戳为键存储数据,以便在10秒后读回(我用它来发送推送通知)。我想知道是否可以在redis中查询特定范围内的时间戳列表。例如:我有一个正在运行的线程,每10秒就会从Redis获取该数据。假设放置了7条新消息,这意味着10秒后我想为当时放置的消息发送7条新的推送通知(我将检查它们是否已被阅读,但这是另一种情况)。只是想知道,我对redis一点都不熟悉所以我希望有人知道。我正在使用this 最佳答案 您可以使用排序集,其中每个成员的分数将是unix时间戳。要存储新消息,请使用ZADD:ZADDmyzset然后要

redis 服务器关闭并重新启动后的 redis key 不可用

为了向redis添加key,我通过redisCLI执行了以下操作:127.0.0.1:6379>KEYS*1)"key1"2)"key2"3)"key3"127.0.0.1:6379>SETname"rahul"OK127.0.0.1:6379>KEYS*1)"key1"2)"name"3)"key2"4)"key3"127.0.0.1:6379>为了验证我的redis数据存储中数据的持久性,我重新启动了服务器,在检查key时,我发现有几个key丢失了:127.0.0.1:6379>KEYS*1)"key3"2)"key2"3)"key1"127.0.0.1:6379>redis键是否

azure - 启用 Azure Redis 缓存的诊断

我正在尝试为AzureRedis缓存启用诊断。Redis和存储帐户都在同一区域(美国西部)。根据thisarticle它应该工作。选择存储帐户后,出现以下一般错误。知道如何进一步调查或向何处报告吗? 最佳答案 您尝试映射的存储帐户应该支持表。您可以通过访问Redis缓存来检查错误。操作>>事件图表>>microsoft.insights/diagnosticSettings/writestatusCode:BadRequestserviceRequestId:00000000-0000-0000-0000-000000000000s

Redis ExpireAt 未按预期工作

根据Redis文档,EXPIREAT接受unixtime作为指定删除键的时间的参数。当我在redis-cli中执行以下命令时:127.0.0.1:6379>setbbbbOK127.0.0.1:6379>EXISTSbb(integer)1127.0.0.1:6379>TTLbb(integer)-1127.0.0.1:6379>EXPIREATbb1462173420000//executedat1462173300000====>>>1(integer)1127.0.0.1:6379>EXISTSbb//executedafter1462173420000(integer)1===