标签: redis

Redis 占用所有内存和崩溃

redis 服务器 v2.8.4 在 Ubuntu 14.04 VPS 上运行,具有 8 GB RAM 和 16 GB 交换空间(在 SSD 上)。但是htop显示redis单独占用22.4 G内存!

redis-server最终因为内存不足而崩溃。Mem并且Swp两者都命中 100% 然后redis-server与其他服务一起被杀死。

来自dmesg

[165578.047682] Out of memory: Kill process 10155 (redis-server) score 834 or sacrifice child
[165578.047896] Killed process 10155 (redis-server) total-vm:31038376kB, anon-rss:5636092kB, file-rss:0kB
Run Code Online (Sandbox Code Playgroud)

redis-server从 OOM 崩溃或service redis-server force-reload导致内存使用量下降到 <100MB 的情况下重新启动。

问题:为什么会redis-server占用越来越多的内存直到崩溃?我们怎样才能防止这种情况发生?

设置是不是真的maxmemory不行,因为一旦redis达到maxmemory限制,它就会开始删除数据?

在此处输入图片说明 在此处输入图片说明

重启 redis-server 后 …

nosql performance memory ubuntu redis

16
推荐指数
2
解决办法
4万
查看次数

redis 新手 - 如何在散列中创建散列?

我想在redis中创建这种类型的结构:(它基本上是json数据)

{
    "id": "0001",
    "name":"widget ABC",
    "model": "model123",
    "service":"standard",
    "admin_password": 82616416,
    "r1":
        {
            "extid":"50000",
            "password":"test123",
        },
    "r2":
        {
            "ext":"30000",
            "password":"test123",
        },
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的:

我试图创建一个没有“子”哈希的哈希,只是为了确保我掌握了基本知识。所以这是我从 redis-cli 开始的:

HMSET widget:1 id 0001 name 'widget ABC' model 'model123' service standard admin_password 82616416
HMSET widget:2 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234
Run Code Online (Sandbox Code Playgroud)

这似乎有效。我可以看到我在小部件集合中有 2 条小部件数据“记录”。

但是我尝试使用 r1 数据创建记录失败。

这是我尝试过的:

HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1{extid 50000} 
Run Code Online (Sandbox Code Playgroud)

这将创建一个散列值“50000}”的散列键“r1{extid”

任何建议,将不胜感激。我认为我的问题是我的行话。我只是不太了解 redis 语法,无法知道在我的谷歌搜索中使用哪些词。

也许我只需要像这样“展平”数据:

HMSET …
Run Code Online (Sandbox Code Playgroud)

nosql redis hashing

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

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

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

broker_url = redis://:default:123456@cruise-redis-headless.reddwarf-cache.svc.cluster.local:6379/5
celery_result_backend = redis://:default:123456@cruise-redis-headless.reddwarf-cache.svc.cluster.local:6379/5
Run Code Online (Sandbox Code Playgroud)

但是当我使用以下命令启动芹菜时:

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]
- …
Run Code Online (Sandbox Code Playgroud)

redis

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

搜索 Redis 数据库

想象一下在 Redis 数据库中有一堆散列,每个散列代表一个用户对象。例如,您将如何让用户获得最低注册日期?位置ts_registered最低的用户。我在 redis.io命令页面上搜索了一些,但似乎没有在那里找到它的命令。

我对Redis没有太多经验,我基本上只是在检查它是如何工作的。

select condition redis

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

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

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

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

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

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

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

redis

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

Redis 从复制中连同哨兵一起删除从属

我有一个 3 节点 Redis 复制和一个 3 节点 Sentinel。我想移除一个奴隶。

我尝试停止从站并slaveof 10.128.130.139 6379从配置中删除。但是在我启动之后它又变成了奴隶。并slaveof再次回到配置中。

阅读SLAVEOF 后,我尝试调用SLAVEOF NO ONE. 但1分钟后它又变成了奴隶。

我猜 Sentinel 将它重新配置为 slave。在 Sentinel 存在的情况下,如何删除一个奴隶?

replication redis

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

标签 统计

redis ×6

nosql ×2

condition ×1

hashing ×1

memory ×1

performance ×1

replication ×1

select ×1

ubuntu ×1