AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[redis](dba)

Martin Hope
Putnik
Asked: 2023-07-26 20:49:19 +0800 CST

如何让 Redis 从磁盘工作?不在于坚持

  • 5

我有可能为这项任务选择了错误的工具,如果您知道更好的工具,请随时提出建议。

任务:我需要存储键值对。

  • 每对为 60 字节。键是 ID 和值 - 两者都是相当随机的或至少是非结构化的。
  • 这样的对大约有 2 百万,总共产生大约 110 GB 的纯数据。未来有良好的成长机会。
  • 写入负载较重,读取负载较轻。
  • 如果能有 1K IOPS 的写入性能就好了,但也许这只是一个梦想,我将不得不选择速度较慢但不那么昂贵的东西。
  • 我可以批量写入,但键不会是连续的(例如123,7,13565而不是1,2,3)
  • 不需要花哨的搜索,只需给出完整键的值即可。
  • 如果重要的话,我使用的是 AWS,但可以切换到一个非常好的解决方案。
  • 成本很重要。

Redis 是一个键值存储,所以我想使用它,但是在内存中保留这么大的数据库成本太高,所以我想以一种将从内存中获取数据作为缓存的方式配置 Redis,并且当缓存未命中时 - 来自磁盘。

所以,这与Redis作为备份的持久性无关。

除了 Redis 我还尝试过:

  • 目录树中的纯文件,例如key='abcdef' => ab/cd/ef. Ext2、BtrFS,尝试将写入分布到 16 个分区(约 0.5M 对后性能非常糟糕)
  • MySQL(悄然死去)

我还考虑过带有数据分层的 AWS Elasticache Redis,但最便宜的实例对我来说成本高昂(约 600 美元/月)

我怎样才能做到这一点?

redis
  • 2 个回答
  • 23 Views
Martin Hope
Dolphin
Asked: 2021-08-10 01:56:38 +0800 CST

是否可以在 redis 6.0+ 中列出所有组

  • 1

现在我在我的应用程序中遇到了一个问题,如下所示:

Caused by: redis.clients.jedis.exceptions.JedisDataException: NOGROUP No such key 'pydolphin:stream:article' or consumer group 'pydolphin:stream:group:article' in XREADGROUP with GROUP option
    at redis.clients.jedis.Protocol.processError(Protocol.java:135) ~[jedis-3.6.0.jar!/:?]
    at redis.clients.jedis.Protocol.process(Protocol.java:169) ~[jedis-3.6.0.jar!/:?]
    at redis.clients.jedis.Protocol.read(Protocol.java:223) ~[jedis-3.6.0.jar!/:?]
    at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:352) ~[jedis-3.6.0.jar!/:?]
    at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:304) ~[jedis-3.6.0.jar!/:?]
    at redis.clients.jedis.BinaryJedis.xreadGroup(BinaryJedis.java:4781) ~[jedis-3.6.0.jar!/:?]
    at org.springframework.data.redis.connection.jedis.JedisStreamCommands.lambda$xReadGroup$17(JedisStreamCommands.java:364) ~[spring-data-redis-2.5.0.jar!/:2.5.0]
    at org.springframework.data.redis.connection.jedis.JedisConnection.lambda$doInvoke$2(JedisConnection.java:176) ~[spring-data-redis-2.5.0.jar!/:2.5.0]
    at org.springframework.data.redis.connection.jedis.JedisConnection.doWithJedis(JedisConnection.java:799) ~[spring-data-redis-2.5.0.jar!/:2.5.0]
    ... 17 more

现在我想看看redis中有多少组,令我惊讶的是,在阅读xgroup文档后我找不到任何命令来执行此操作。是否可以列出 redis 6.0+ 中的所有组?

redis
  • 1 个回答
  • 76 Views
Martin Hope
Dolphin
Asked: 2021-08-09 04:55:11 +0800 CST

连接到 redis 6.0+ 时,WRONGPASS 无效的用户名-密码对或用户被禁用

  • 3

我试图连接 redis 6.0+,这是我现在配置的 Python celery redis 代理 url:

broker_url = redis://:default:[email protected]:6379/5
celery_result_backend = redis://:default:[email protected]:6379/5

但是当我使用这个命令启动芹菜时:

root@pydolphin-service-6fc4b98f54-msfql:~/pydolphin# celery -A dolphin.tasks.tasks worker --loglevel=INFO -n worker2 -Q non_editor_pick_and_diff_pull --concurrency 2
/usr/local/lib/python3.9/site-packages/celery/platforms.py:834: SecurityWarning: You're running the worker with superuser privileges: this is
absolutely not recommended!

Please specify a different user using the --uid option.

User information: uid=0 euid=0 gid=0 egid=0

  warnings.warn(SecurityWarning(ROOT_DISCOURAGED.format(
 
 -------------- celery@worker2 v5.1.2 (sun-harmonics)
--- ***** ----- 
-- ******* ---- Linux-3.10.0-1160.31.1.el7.x86_64-x86_64-with-glibc2.28 2021-08-08 20:45:35
- *** --- * --- 
- ** ---------- [config]
- ** ---------- .> app:         tasks:0x7fb4f6c2dd90
- ** ---------- .> transport:   redis://:**@cruise-redis-headless.reddwarf-cache.svc.cluster.local:6379/5
- ** ---------- .> results:     redis://:**@cruise-redis-headless.reddwarf-cache.svc.cluster.local:6379/5
- *** --- * --- .> concurrency: 2 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- 
 -------------- [queues]
                .> non_editor_pick_and_diff_pull exchange=non_editor_pick_and_diff_pull(direct) key=non_editor_pick_and_diff_pull
                

[tasks]
  . pydolphin.dolphin.tasks.cert-tasks
  . pydolphin.dolphin.tasks.tasks

[2021-08-08 20:45:35,540: ERROR/MainProcess] consumer: Cannot connect to redis://:**@cruise-redis-headless.reddwarf-cache.svc.cluster.local:6379/5: WRONGPASS invalid username-password pair or user is disabled..
Trying again in 2.00 seconds... (1/100)

[2021-08-08 20:45:37,547: ERROR/MainProcess] consumer: Cannot connect to redis://:**@cruise-redis-headless.reddwarf-cache.svc.cluster.local:6379/5: WRONGPASS invalid username-password pair or user is disabled..
Trying again in 4.00 seconds... (2/100)

^C
worker: Hitting Ctrl+C again will terminate all running tasks!

worker: Warm shutdown (MainProcess)

我确定用户名和密码正确,因为我可以使用该redis-cli命令登录 redis。问题出在哪里,我应该怎么做才能解决它?

redis
  • 1 个回答
  • 5906 Views
Martin Hope
Dolphin
Asked: 2021-08-09 03:54:31 +0800 CST

如何使用用户名和密码登录redis 6.0+

  • 1

我发现redis 6.0+添加了acl,现在我想使用默认用户登录,如下所示:

I have no name!@cruise-redis-master-0:/$ redis-cli -h 127.0.0.1 -a doGT233U7 -u default
Invalid URI scheme

我阅读了文档但没有找到任何通过用户名和密码登录redis的命令,我应该怎么做才能登录6.0+以上的新版本的redis?

redis
  • 1 个回答
  • 2315 Views
Martin Hope
DB guy
Asked: 2021-04-03 04:51:30 +0800 CST

关闭 Redis 上的仅附加和快照

  • 0

我想在我的Redis master上关闭数据持久化,通过关闭appendonly和snapshots,我想使用replica进行持久化,关闭这两个对replication有影响吗?

replication redis
  • 1 个回答
  • 59 Views
Martin Hope
Utkonos
Asked: 2020-05-26 06:15:16 +0800 CST

如何将 Redis 数据库从 5.x 升级到 6.x

  • 0

此实例运行 Redis 5.0.8 开源版本。Redis 软件包已更新到当前的 6.0.3,现在服务器会Loading RDB produced by version 5.0.8在启动时报告。将 RDB 升级到服务器版本的正确方法是什么?我检查了管理文档,没有提到任何内容。此外,我查看了6.0 发行说明,也没有任何内容。

redis
  • 1 个回答
  • 3275 Views
Martin Hope
Neeraj Murarka
Asked: 2019-02-11 12:18:48 +0800 CST

Redis 具有改变它可以存储的各种数据类型的“命令”。为什么?Redis主要是一个缓存

  • 0

如果您查看https://redis.io/commands#list之类的内容,您会发现 Redis 存储和支持的类型在数据存储的内存中是完全可变的、原子的。

这没有多大意义,因为 Redis 主要作为缓存存在,以加速应用程序,这些应用程序具有与 Redis 分开的数据库,并且仅将 Redis 用作从中读取值的地方。

我在这里错过了什么?当不适合缓存模型时,为什么直接在 Redis 上对值进行可变性?

redis cache
  • 1 个回答
  • 63 Views
Martin Hope
Karan Desai
Asked: 2017-07-29 21:37:57 +0800 CST

什么是“范围”和“半径”查询,它们之间有什么区别?

  • 5

在为我们的应用程序寻找简单有效的工具来提高数据获取性能时,我们遇到了“ Redis ”。

在redis 的文档中,以下具体提到了这两种类型或类别的查询:

它支持数据结构,例如字符串、哈希、列表、集合、具有范围查询的排序集合、位图、超日志和具有半径查询的地理空间索引......

这是数据库和数据结构领域的第一次,我读过这样的东西。我挖出互联网以了解更多信息,但没有发现任何有用的信息。

范围和半径查询到底是什么?两者有什么区别?任何带有示例的解释都会很有用。

redis
  • 1 个回答
  • 1439 Views
Martin Hope
Lupus
Asked: 2017-07-04 06:57:49 +0800 CST

在没有 TTL 的情况下长期在 Redis 中失去持久性

  • 4

我们的钥匙在一段时间内丢失了,我们找不到问题所在。

我们同时使用 AOF 和 RDB,配置如下:

关系数据库:

save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb

AOF:

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes

如您所见,没有什么花哨的……都是redis的默认值。

我试图创建密钥并重新启动服务器。此时钥匙还在。我无法确定钥匙何时丢失或为什么丢失?日志文件没有帮助,因为我不知道在日志中或何时查询什么。

我所知道的是我的钥匙每隔大约一个月丢失一次。

我如何在redis中调试此类问题?

configuration redis
  • 1 个回答
  • 252 Views
Martin Hope
luv.preet
Asked: 2017-03-31 12:40:47 +0800 CST

redis 使用所有分配的内存会发生什么?

  • 0

我对redis很陌生,尝试学习和探索redis的结构和体系结构。

在 2.4 版本之前,redis 中有虚拟内存选项可用,通过它可以将较少使用的值交换到磁盘,并在需要时从磁盘交换。只有热点数据(经常使用)保存在主内存中。

但是现在由于没有像虚拟内存这样的选项,当分配给它的最大空间被完全填满时,redis如何处理?

它如何使用哪种算法/过程从主内存中删除数据?我们可以不使用虚拟内存将很少使用的数据写入磁盘吗?

nosql redis
  • 1 个回答
  • 447 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve