Redis在实际应用中,是单独部署在一个服务器中,还是和项目跑在一个服务器中,还是跑在数据库服务器?
理论上是独立部署最好。但实际情况吧看公司机器资源。不从实际情况考虑的架构都是耍流氓。redis主要耗内存。但生产环境中cpu,网络,磁盘都是要考虑的问题,而且我们的资源是有限的。

可以肯定的是最好不要和数据库在同一个节点部署。数据库需要单独部署。为什么这样说呢? 一个原因是因为数据库太重要了。我们不能因为redis的问题导致数据库被牵连。另一个原因。redis作为缓存,本身就是为了减少直接连库的压力。结果部署在一个节点上。数据库实例的压力是小了。但这个节点整体访问量,IO,cpu,内存并没有减小多少。甚至是增加了。因为一次请求要吗访问数据库,要吗访问redis,但现在都在一个节点上, 所以总量并没有减小。而redis自身还会淘汰数据,这其中又是一波耗节点资源的操作。
从另一个理想的角度考虑,我希望我的数据库实例挂了,能从redis中获取数据。我的redis挂了,能从数据线中获取数据。这样尽量保证业务正常。要实现这个目标,数据库和redis必须在不同的节点上。如果在同一个节点。而这个节点挂了。我们就没有取数据的地方了。
生产环境,中间件之间可以混合部署。比如redis,mq可以在同节点混合部署。业务项目之间可以混合部署。但业务不要和中间件部署到同节点。数据库独立节点部署。

redis最好也不要和其他的耗内存大户混合部署,如elasticsearch 这种的。
如果没有中间件节点。那就选个业务访问量少的节点混合部署吧,总之不要选数据库节点。除非这个数据库节点是冷备节点
看规模吧!小规模直接用docker跟服务一起跑。我们是直接跑k8s 上,通过redis-operator 来管理redis集群,使用sentinel模式!redis集群的运维工作基本上由k8s 管理,扩缩容都是秒级实现。容器技术出来以后,基本很少用宿主机跑redis,除了一些老项目以外,新项目都直接容器化了。

mongodb主要用来干嘛,什么时候用,存什么样的数据?
是一种存储json对象,并提供快速查询,删除和更新的新一代数据库服务软件。可以类比mysql或者sqlserver。但跟传统数据库不同,它不依赖schema(类似mysql的table定义)和关系约束。它可以存任何json对象,并提供多种方法进行查询,聚合,映射。
由于原生json支持,特别适合作为node的数据库。node中比较知名的mongoose,把mongodb进行了包装,提供schema检验,关系查询,等传统sql的功能,通过promise提供并行批量数据库操作,事务性也可以由第三方插件提供。再结合redis的内存缓存服务,和kareem提供的hook功能。基本上可以优雅的完成自动缓存查询,自动缓存更新。因此,用node快速开发情况下会选择mongodb。
这个主要看业务,大部分用于存储一些日志,统计相关的数据,如果不要求事物的话mongo是很好的选择,天生具备分布式扩展,大数据量存储。我们是用java操作,用的spring data mongodb,具体你可以百度猿天地,里面有视频教程
到此,以上就是小编对于redis 热数据的问题就介绍到这了,希望这2点解答对大家有用。