小编Leo*_*llo的帖子

我们能否将 aws elasticache redis 的通知键空间事件接收到 aws lambda 函数

有什么办法,我们可以接收notifiy-keyspace-eventsAWS ElasticCache-Redisaws-lambda函数吗?

amazon-web-services redis amazon-elasticache aws-lambda

9
推荐指数
0
解决办法
493
查看次数

如何访问 AWS ElastiCache 上的 Redis 日志

最近我们的 Redis 一直面临延迟问题。

我们正在尝试调试正在发生的事情,我遇到了这篇文章,它提到检查 redis 日志以调查数据库在后台保存的频率(即使用bgsave

我对如何访问 redis 日志文件进行了一些研究,但找不到有关如何在 AWS ElastiCache 上查找它的任何信息。我还尝试monitor从 redis cli 运行该命令,但它没有给我有关备份数据库等内容的信息。

我如何访问此类日志?

amazon-web-services redis amazon-elasticache

7
推荐指数
1
解决办法
1万
查看次数

Redis“SCAN”:如何在可能匹配的新通信键之间保持平衡并确保在合理的时间内获得最终结果?

我不太熟悉Redis。目前我正在设计一些实时服务,我想依赖它。我预计每分钟约 10000-50000 个键可以SET合理使用EX,并且很少使用它们来匹配它们,SCAN而不必担心性能瓶颈。

我怀疑的是“输入/输出率”以及可能与某些SCAN查询匹配的键的溢出,因此它永远不会终止(即总是回复最新的光标位置并强制您继续;如果有人消费x items per second并且有的话,这很容易发生x + y items per second coming iny > 0)。

显然,我可以将所需的SCAN尺寸设置得足够长;但我想知道是否存在更好的解决方案,或者Redis它本身能保证SCAN在这种情况下自动增大大小吗?

redis

7
推荐指数
1
解决办法
4014
查看次数

来自 JSON 的 Redis 中的 Lua

我有一个存储在 Redis 中的 JSON 字符串列表,如下所示:

[
   { "ID": 25, "DomainID": 23455, "Name": "Stuff", "Value": 23 }, 
   { "ID": 35, "DomainID": 23455, "Name": "Stuff", "Value": 10 }
]
Run Code Online (Sandbox Code Playgroud)

关键是类似于“事件:23455”。

使用 Lua 脚本和 ServiceStack.Redis 如何提取仅包含值小于 20 的值的匿名对象?

所以我想返回的内容如下所示:

[{ "ID": 35, "Value": 10}]
Run Code Online (Sandbox Code Playgroud)

谢谢。

2013 年 3 月 31 日更新:

在尝试了建议的内容后,我现在遇到了一个新问题。Lua 脚本语法错误。

我收到一个关于“在 cjson 附近期待 '='”的 Lua 语法错误。这是我提供给 Redis 的 Lua 脚本字符串(在 C# 中):

string luaScript = "local tDecoded = cjson.decode(redis.call('GET', KEYS[1]));"
+ "local tFinal = {};"
+ "for iIndex, tValue in …
Run Code Online (Sandbox Code Playgroud)

lua redis servicestack.redis

6
推荐指数
1
解决办法
8942
查看次数

Predis 与 laravel 5.5“Aggregate/RedisCluster.php:337 池中没有可用的连接”

我已使用 Laravel 5.5 和 Predis 包在 Amazon ElastiCache 上设置 redis-cluster 进行缓存,但出现以下错误。

Predis\ClientException: No connections available in the pool in vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337 
Run Code Online (Sandbox Code Playgroud)

跟踪:Predis\ClientException:vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337 中的池中没有可用的连接

堆栈跟踪:

0 供应商/predis/predis/src/Connection/Aggregate/RedisCluster.php(411): Predis\Connection\Aggregate\RedisCluster->guessNode(153)

1供应商/predis/predis/src/Connection/Aggregate/RedisCluster.php(388):Predis\Connection\Aggregate\RedisCluster->getConnectionBySlot(153)

2供应商/predis/predis/src/Connection/Aggregate/RedisCluster.php(550):Predis\Connection\Aggregate\RedisCluster->getConnection(对象(Predis\Command\StringSetExpire))

3 供应商/predis/predis/src/Connection/Aggregate/RedisCluster.php(593): Predis\Connection\Aggregate\RedisCluster->retryCommandOnFailure(Object(Predis\Command\StringSetExpire), 'executeCommand')

4 供应商/predis/predis/src/Client.php(331): Predis\Connection\Aggregate\RedisCluster->executeCommand(对象(Predis\Command\StringSetExpire))

5 供应商/predis/predis/src/Client.php(314): Predis\Client->executeCommand(对象(Predis\Command\StringSetExpire))

6 供应商/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(96): Predis\Client->__call('setex', Array)

7vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(108): Illuminate\Redis\Connections\Connection->command('setex', Array)

8vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(93): Illuminate\Redis\Connections\Connection->__call('setex', Array)

9vendor/laravel/framework/src/Illuminate/Cache/Repository.php(195): Illuminate\Cache\RedisStore->put('5rr44TBjIPEgJSx...', 'a:1:{s:6:"_flas.. .', 480)

10vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php(66): Illuminate\Cache\Repository->put('5rr44TBjIPEgJSx...', 'a:1:{s:6:"_flas.. .', 480)

11vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\Session\CacheBasedSessionHandler->write('5rr44TBjIPEgJSx...', 'a:1:{s:6:"_flas.. .')

12vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\Session\Store->save()

13vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\Session\Middleware\StartSession->terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\Response) )

14vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\Foundation\Http\Kernel->terminateMiddleware(对象(Illuminate\Http\Request), 对象(Illuminate\Http\Response) )

15 public/index.php(58): Illuminate\Foundation\Http\Kernel->terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\Response))

16 {主要}

我使用的技术栈:

  • PHP7.0 …

php redis amazon-elasticache laravel laravel-5

6
推荐指数
1
解决办法
7923
查看次数

io.lettuce.core.RedisCommandTimeoutException:命令超时

io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 second(s)
    at io.lettuce.core.ExceptionFactory.createTimeoutException(ExceptionFactory.java:51) ~[lettuce-core-5.1.6.RELEASE.jar:?]
    at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114) ~[lettuce-core-5.1.6.RELEASE.jar:?]
    at io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:123) ~[lettuce-core-5.1.6.RELEASE.jar:?]
    at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80) ~[lettuce-core-5.1.6.RELEASE.jar:?]
    at com.sun.proxy.$Proxy72.get(Unknown Source) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor138.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_212]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_212]
    at io.lettuce.core.support.ConnectionWrapping$DelegateCloseToConnectionInvocationHandler.handleInvocation(ConnectionWrapping.java:191) ~[lettuce-core-5.1.6.RELEASE.jar:?]
    at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80) ~[lettuce-core-5.1.6.RELEASE.jar:?]
    at com.sun.proxy.$Proxy72.get(Unknown Source) ~[?:?]
Run Code Online (Sandbox Code Playgroud)

我正在使用以下示例代码通过连接池获取连接,请检查并建议我做错了什么

public StatefulRedisClusterConnection<String, String> getRedisClient() {
        log.debug("getRedisClient()");
        if (pool == null) {
            synchronized (this) {
                pool = initializeConnectionPool();
            }
        }
        try {
            return pool.borrowObject();
        } catch (Exception e) {
            log.error("getting pool connection failed",e);
        }
        return null;
    } …
Run Code Online (Sandbox Code Playgroud)

lettuce amazon-elasticache redis-cluster

6
推荐指数
1
解决办法
3817
查看次数

AWS Redis Cluster MOVED 使用 redis 节点库时出错

我在 AWS 中创建了一个具有 2 个节点的 Redis MemoryDB 集群: 在此输入图像描述

我使用redis节点库 v4.0.0 连接到它,如下所示:

import { createCluster } from 'redis';
(async () => {
    const REDIS_USERNAME = 'test-username';
    const REDIS_PASSWORD = 'test-pass';
    const cluster = createCluster({
        rootNodes: [
            {
                url: `rediss://node1.amazonaws.com:6379`,
            },
            {
                url: `rediss://node2.amazonaws.com:6379`,
            },
        ],
        defaults: {
            url: `rediss://cluster.amazonaws.com:6379`,
            username: REDIS_USERNAME,
            password: REDIS_PASSWORD,
        }
    });
    cluster.on('error', (err) => console.log('Redis Cluster Error', err));
    await cluster.connect();
    console.log('connected to cluster...');
    await cluster.set('key', 'value');
    const value = await cluster.get('key');
    console.log('Value', value);
    await cluster.disconnect(); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services redis node.js amazon-memory-db

6
推荐指数
1
解决办法
3056
查看次数

无法在同一 VPC 上将 aws redis 与 ec2 连接

我已经创建了 AWS ElastiCache redis 服务器并配置了 EC2 实例,但不知何故我无法通过 EC2 实例连接 Redis。

我也分配了相同的安全组。

这是我的配置

EC2

Redis

我面临的错误是 Redis::CannotConnectError: Error connecting to Redis on some-prod.dhgdjw.0001.usw2.cache.amazonaws.com:6379 (Redis::TimeoutError)

任何帮助将不胜感激。

ruby-on-rails amazon-web-services redis amazon-elasticache

5
推荐指数
1
解决办法
4672
查看次数

错误:使用 stunnal 方法连接到弹性缓存时对等连接重置

我正在使用弹性缓存单节点分片 redis 4.0 更高版本。

我启用了传输中加密并提供了 redis 身份验证令牌。

我使用此链接创建了一个带有 stunnal 的堡垒主机

https://aws.amazon.com/premiumsupport/knowledge-center/elasticache-connect-redis-node/

我可以使用以下方式连接到弹性缓存 redis 节点

redis-cli -h 主机名 -p 6379 -a mypassword

我也可以做telnet。 但是 当我在连接后在 redis-cli 上 ping(预期响应“PONG”)时,它给出了

“错误:对等方重置连接”

我检查了双方的安全组。任何的想法 ?堡垒主机 ubuntu 16.04 机器

redis amazon-elasticache

5
推荐指数
1
解决办法
1万
查看次数

Node js redis 一次性设置数据

我开始学习 redis 和 nodejs ,我从第三方 api 调用获取数据。我想将此数据保存到我的 redis 服务器中。我能够做到这一点,但我遇到了一个问题,如果我在具有多个键的 json 数组中获取数据,我将无法插入它。我该如何解决这个问题?

我的数据是:

keys
[123,3435,455,455]
value
[{name:'shakti'},{name:'amit'},{name:'amiit'},{name:'sad'}]
Run Code Online (Sandbox Code Playgroud)

我想立即将这些数据保存为键值形式,而不使用任何 for 循环。目前我正在使用 for 循环

for(var i=0i<keys.length;;i++){
     redisClient.set(keys[i],data);
}
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。谢谢

redis node.js node-redis

5
推荐指数
2
解决办法
2137
查看次数

如何使用纯Redis以原子方式删除与模式匹配的数百万个键?

假设我有数百万个prefix:<numeric_id>密钥。

我想以原子方式清除它们。

如何使用 Redis 以原子方式删除与模式匹配的键显示了许多选项。有些使用redis-cli或 Bash 脚本,但我需要以编程方式使用我的客户端来完成。

Lua 脚本方法很有前途,但使用KEYS命令的解决方案失败并出现“太多元素无法解包”错误。

如何实现这一目标?

lua redis

4
推荐指数
1
解决办法
665
查看次数

弹性缓存与 DynamoDb DAX

我有一个用例,我在 Dynamo 数据库中的两个表(即事务中的 t1 和 t2)中写入数据。我的应用程序需要多次从这些表中读取数据(1 次写入,至少 4 次读取)。我正在考虑 DAX 与 Elastic Cache。有人有什么建议吗?提前致谢K

amazon-elasticache amazon-dynamodb amazon-dynamodb-dax

3
推荐指数
1
解决办法
1万
查看次数

当最小分配对齐为 16 字节时,如何进行 24 字节大小的分配?

我的应用程序进行了大量恰好 24 字节的分配,但我使用的是第三方库,该库要求分配器提供至少 16 字节的对齐。

因此,如果我编译jemalloc配置为 8--with-lg-quantum=3字节对齐 ( ),我会得到 24 字节的分配,但我的第三方库失败。

如果我编译jemalloc配置为 16字节对齐 ( --with-lg-quantum=4),我的malloc((size_t)24)调用将分配 32 个字节。这增加了 33.3% 的内存使用量。但是,我需要定期malloc((size_t)24)调用来分配 16 字节对齐(因此是 32 字节),以便我的第三方库工作。

如何从我的应用程序分配 24 字节块(8 字节对齐)以有效地使用内存?

我试过了aligned_alloc(8, 24),但它仍然分配 32 字节,16 字节对齐。

c c++ malloc memory-management jemalloc

1
推荐指数
1
解决办法
282
查看次数