我正在使用Redis来进行发布/订阅以及服务器端的缓存。我的应用服务器运行了Redis服务器作为一个进程(同时作为缓存)。我有几个轻量级客户端(运行Redis客户端)以发布/订阅模式连接到这个应用服务器上。我想知道Redis在哪里存储缓存数据?是仅在服务器上还是在客户端上也有副本? 如果有近100个Redis客户端通过发布/订阅通道连接到服务器,这样使用Redis是否是个好主意?
谢谢
谢谢
Redis是一种(类似于)内存型noSQL数据库;但我发现我的副本(运行在Linux上)会将数据转储到/var/lib/redis/dump.rdb。
Redis能管理大量的连接,它默认使用内存存储(通过把东西存储在RAM中,它可以非常快速)。
但与此同时,它也可以配置为持久化存储,因此将缓存数据(每隔x时间或每隔x个更新的键)转储到磁盘上。
因此,它可以根据您的需求进行配置,请参见此处。
所有缓存数据都将存储在运行redis服务器的配置所提供的服务器内存中。客户端不保存任何数据,它们只访问由redis服务器存储的数据。
你可以通过config命令来了解它。
redis-cli config get dir
就我所知,Pub/Sub数据是易失性的,Redis根本不存储也不缓存。如果您需要这样的功能,您应该寻找一个专门的消息代理,例如RabbitMQ。
/var/lib/redis/dump.rdb
。在我通过brew安装的macOS上,它位于/usr/local/var/db/redis/dump.rdb
。默认位置
/var/lib/redis/
(保留HTML)Redis将所有数据保存在服务器的内存中,很少将数据保存到磁盘上。 对于服务器<>客户端流 - 所有数据都通过服务器进行传输。 Redis可以处理多个客户端...默认限制为10,000个。 如果您需要更少...您必须重新配置操作系统、服务器设置等- http://redis.io/topics/clients