小编Ers*_*soy的帖子

如何将 Redis 命令“expire”和“sadd”组合成一个命令?

我需要在 Redis 中创建一个集合:

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "World"
2) "Hello"
Run Code Online (Sandbox Code Playgroud)

但我需要为密钥设置过期时间myset

换句话说,我需要一种命令expire sadd myset...(例如用于字符串值的 SETEX)。

有没有办法让 Redis 服务器每次请求都执行这些命令?

redis

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

AWS API Gateway:为什么发布请求正文是 base64 编码的?

正在使用 API 网关触发 Lambda 函数,使用 Lambda 代理集成,但是请求正文是 base64 编码的,这是为什么?以及如何将其更改为 JSON 以对 JSON 进行字符串化?

amazon-web-services aws-lambda aws-api-gateway

7
推荐指数
2
解决办法
3167
查看次数

CloudWatch Logs Insights:按时间范围聚合

我是 CloudWatch Logs Insights 的新手,我不知道如何按 3 列的时间范围聚合数据。

我要解析的日志文件是 json 格式:

{'ts': '12:01:00', 'method':'GET',  'url':'aaaa'}
{'ts': '12:02:00', 'method':'GET',  'url':'aaab'}
{'ts': '12:03:00', 'method':'POST', 'url':'aaac'}
{'ts': '12:04:00', 'method':'GET',  'url':'aaad'}
{'ts': '12:05:00', 'method':'POST', 'url':'aaae'}
{'ts': '12:06:00', 'method':'GET',  'url':'aaaf'}
{'ts': '12:07:00', 'method':'POST', 'url':'aaag'}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每个事件行都是一个 POST 或 GET。每个事件也带有时间戳。

我想使用 Insights 在 500 万个窗口中可视化随时间推移的 GET 和 POST 分布。

我找不到正确的语法来在查询监视器中得到这样的结果:

# : ts       : NbGET  : NbPOST
1 : 12:00:00 : 3      : 1
3 : 12:05:00 : 1      : 2
Run Code Online (Sandbox Code Playgroud)

有了这样的结果,我就可以用两个提取的指标 'GET' 和 'POST' 绘制一个图表。

知道如何实现这一目标吗?

amazon-web-services amazon-cloudwatchlogs

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

AWS DynamoDB 如何计算查询的读取单位?

我正在制作一张桌子,其中每个项目大约是。大小为 3KB。

现在根据文档,它们以4sread units为单位计算- 即对于每个小于 4 kb 的项目,它将被计为 4KB,并占用 1 个读取单元。


假设我有一个100项目表,3kb每个项目的大小(总表= 300kb)。我做了一个查询,其中的50项目满足查询条件,然后将它们返回给我。
现在,读取单元是否会像 : 50 itemsof 3kb size (rounded to 4kb)==200kb那样进行计数200/4 = 50 read units

任何帮助表示赞赏!:) 谢谢!

amazon-web-services amazon-dynamodb dynamodb-queries

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

IOREDIS - 尝试从 Redis 迁移到 KeyDB 时出错

我们使用 Redis 很长时间,直到我们得出结论,迁移到 KeyDB 可能是其功能的不错选择。

环境

OS: Centos 7
NodeJs: v12.18.0
Redis: v6.0.5
Targeted KeyDB: v0.0.0 (git:1069d0b4) //  keydb-cli -v showed this. Installed Using Docker.
ioredis: v4.17.3
pm2: v4.2.1 // used for clustering my application. 
Run Code Online (Sandbox Code Playgroud)

背景

参考 KeyDB 文档,KeyDB 兼容最新版本的 Redis。

KeyDB 仍然与 Redis 模块 API 和协议完全兼容。因此,从 Redis 到 KeyDB 的迁移非常简单,并且类似于您在 Redis 到 Redis 场景中所期望的迁移。https://docs.keydb.dev/docs/migration/

在同一页面中,他们提供了与 KeyDB 兼容的 redis 客户端列表。该列表包含我正在使用的 ioredis。

KeyDB 与此处列出的所有 Redis 客户端兼容,因此不必担心。只需像使用 Redis 一样使用您的客户端。 https://docs.keydb.dev/docs/migration/

问题

正如文档中所说。我应该能够在几个小时内轻松迁移到 KeyDB。好吧,事实并非如此!至少对我来说不是!我花了我最后 3 天在互联网上搜索解决方案。我得出的结论是我应该写信给 stackoverflow :)

这个问题在某种程度上很有趣。客户端实际上正在使用 KeyDb …

javascript redis node.js ioredis keydb

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

Laravel 7 Sanctum 注销

我正在为我的应用程序使用带有 Sanctum 身份验证的 Laravel 7。
如何执行注销程序?
我用:

Auth::user()->tokens()->delete();
Run Code Online (Sandbox Code Playgroud)

它可以工作,但它会删除该用户的所有令牌。我只想删除请求注销的用户的令牌,这样其他会话应该保持打开状态

laravel laravel-sanctum

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

如何在Intelijj IDEA中仅格式化更改的行而不是整个文件

的IntelliJ格式当我使用完整的文件Ctl+ Atl+L从菜单代码- >重新格式化代码。这会在 git commit 中生成整个差异。我只想格式化我更改过的代码而不是整个文件。我该怎么做?

java intellij-idea

6
推荐指数
3
解决办法
2192
查看次数

具有 spring 自动装配依赖项的 aws lambda 函数

在 amazon aws lambda 中执行代码时,我的 @autowired spring 依赖项为空。如果没有加载上下文是有道理的,但我认为 SpringBeanAutowiringSupport 会有所帮助。如何在 amazon lambda 中正确注入依赖?

这是我的代码,它具有 null 自动装配字段,但其他工作正常(如果我用 new 替换自动装配:

@Component
public class ApplicationEventHandler {

@Autowired
private Foo foo;


         public ApplicationEventHandler() {
             logger.info("I'm sure the constructor is being called");
            SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
             //doesn't seem to help
         }

         public void deliveryFailedPermanentlyHandler(SNSEvent event, Context context) throws IOException {
             foo.doStuff() // causes NPE

         }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

java spring amazon-s3 amazon-web-services aws-lambda

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

如何通过特定用户的 Bearer 令牌访问与 S3 Bucket 连接的 AWS CloudFront(JWT 自定义身份验证)

我正在使用无服务器框架将无服务器堆栈部署到 AWS。我的堆栈由一些 lambda 函数、DynamoDB 表和 API 网关组成。

我使用所谓的lambda Authorizer来保护 API 网关。另外,我有一个可以生成令牌的自定义独立自托管身份验证服务。

因此,场景是用户可以从此服务(托管在 Azure 上的 IdentityServer4)请求令牌,然后用户可以使用不记名令牌向 API 网关发送请求,这样 API 网关将要求 lambda 授权者生成 iam 角色,如果令牌是正确的。所有这些都是有效的并且按预期工作。

以下是我的 serverless.yml 中 lambda 授权者定义的示例,以及我如何使用它来保护其他 API 网关端点:(您可以看到 addUserInfo 函数具有使用自定义授权者保护的 API)


functions:
    # =================================================================
    # API Gateway event handlers
    # ================================================================
  auth:
    handler: api/auth/mda-auth-server.handler

  addUserInfo:
     handler: api/user/create-replace-user-info.handler
     description: Create Or Replace user section
     events:
       - http:
           path: user
           method: post
           authorizer: 
             name: auth
             resultTtlInSeconds: ${self:custom.resultTtlInSeconds}
             identitySource: method.request.header.Authorization
             type: token
           cors:
             origin: '*'
             headers: ${self:custom.allowedHeaders}
Run Code Online (Sandbox Code Playgroud)

现在我想扩展我的 API,以便允许用户添加图像,所以我遵循了这种 …

amazon-s3 amazon-web-services oauth-2.0 amazon-cloudfront aws-lambda

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

如何在不使用存储过程的情况下用MySQL绘制三角形星形图案?

三角形图案示例上述图案适用于 p(5)。如何使用MySQL编写查询来打印模式 P(n)(其中 n 是定义行数的整数),而不使用存储过程。我有一个MS SQL Server的代码示例,即

DECLARE @i INT = 20
WHILE (@i > 0) 
BEGIN
   PRINT REPLICATE('* ', @i) 
   SET @i = @i - 1
END
Run Code Online (Sandbox Code Playgroud)

mysql sql

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