Redis存储数据的位置在哪里?

42
我正在使用Redis来进行发布/订阅以及服务器端的缓存。我的应用服务器运行了Redis服务器作为一个进程(同时作为缓存)。我有几个轻量级客户端(运行Redis客户端)以发布/订阅模式连接到这个应用服务器上。我想知道Redis在哪里存储缓存数据?是仅在服务器上还是在客户端上也有副本? 如果有近100个Redis客户端通过发布/订阅通道连接到服务器,这样使用Redis是否是个好主意?
谢谢

可能是Redis的数据目录在哪里?的重复问题。 - Afshin Mehrabani
9个回答

31

Redis是一种(类似于)内存型noSQL数据库;但我发现我的副本(运行在Linux上)会将数据转储到/var/lib/redis/dump.rdb。


13

Redis能管理大量的连接,它默认使用内存存储(通过把东西存储在RAM中,它可以非常快速)。

但与此同时,它也可以配置为持久化存储,因此将缓存数据(每隔x时间或每隔x个更新的键)转储到磁盘上。

因此,它可以根据您的需求进行配置,请参见此处


8

所有缓存数据都将存储在运行redis服务器的配置所提供的服务器内存中。客户端不保存任何数据,它们只访问由redis服务器存储的数据。


数据是如何在内存和硬盘之间链接的? - mercury

5
我刚刚通过Homebrew在Mac上安装了Redis。在没有任何配置的情况下,我发现dump.rdb文件位于我的工作目录(即我启动redis-server的位置)。

4

你可以通过config命令来了解它。

redis-cli config get dir

就我所知,Pub/Sub数据是易失性的,Redis根本不存储也不缓存。如果您需要这样的功能,您应该寻找一个专门的消息代理,例如RabbitMQ。


2
在我的Ubuntu系统上,它位于/var/lib/redis/dump.rdb。在我通过brew安装的macOS上,它位于/usr/local/var/db/redis/dump.rdb

1

默认位置

/var/lib/redis/

(保留HTML)

0

Redis将所有数据保存在服务器的内存中,很少将数据保存到磁盘上。 对于服务器<>客户端流 - 所有数据都通过服务器进行传输。 Redis可以处理多个客户端...默认限制为10,000个。 如果您需要更少...您必须重新配置操作系统、服务器设置等- http://redis.io/topics/clients


0
根据我的理解,你关心的问题是关于Redis服务器内存和客户端(应用程序)内存的。Redis 6的客户端缓存正是你要寻找的。服务器和应用程序都存储副本,并通过协议通信进行同步。尽管他们已经实现了一些方法来完成它,但以下示例机制(选自文档)将帮助您更好地理解它。
希望这可以帮助到你。请参阅漂亮的docs以获取更多详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接