Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Redis(或其他方式)在机器之间共享内存_Java_Redis_Spring Boot - Fatal编程技术网

Java Redis(或其他方式)在机器之间共享内存

Java Redis(或其他方式)在机器之间共享内存,java,redis,spring-boot,Java,Redis,Spring Boot,我需要在两台不同的机器之间共享一个大的(~70MB)内存对象(负载平衡器后面的java spring引导rest服务) 作为第一次尝试,我尝试摆弄Redis,配置为从只读no 但我仍然无法理解如何配置它以从机写入数据: master$ redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> set mytest "written by **master**" slave$ redis-cli -h 127.0.0.1

我需要在两台不同的机器之间共享一个大的(~70MB)内存对象(负载平衡器后面的java spring引导rest服务)

作为第一次尝试,我尝试摆弄Redis,配置为
从只读no
但我仍然无法理解如何配置它以从机写入数据:

master$ redis-cli -h 127.0.0.1 -p 6379                 
127.0.0.1:6379> set mytest "written by **master**"

slave$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> get mytest
"written by **master**"
到目前为止还不错,但是当我从奴隶那里写信的时候

slave$ redis-cli -h 127.0.0.1 -p 6379                 
127.0.0.1:6379> set mytest "written by **slave**"
master$ redis-cli -h 127.0.0.1 -p 6379                 
127.0.0.1:6379> get mytest
"written by **master**"
我误解了什么吗

有更好/更简单的方法吗


redis是解决此问题的正确解决方案吗?

从机是只读的,您可以对主机进行读/写操作,并且只能从从机进行读取。是的,Redis非常适合您的场景,但最好检查它公开的数据TPE——也许您可以在许多较小的TPE中打破70MB的对象。我编辑了主Redis和从Redis中的问题:“从机只读否”。写入从机的数据不会被复制,并且可以在与主机重新同步时轻松擦除。另外,因为默认设置为只读从属,所以有人也会认为这实际上是一个bug,而不是您的实际意图。在这种情况下,redis不适合我的场景(?!)。任何服务器都可以独立地重新计算数据,我只需要将它们同步。显然,redis不是适合您的最佳解决方案。目前我看到的唯一解决方案是在每台机器上设置2个redis实例(一个主设备和一个从设备)。使用机器A上的主机,您可以将信息传输到机器B上的从机(复制该主机),反之亦然。你觉得怎么样?