应用部署到服务器redis无法读取数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用部署到服务器redis无法读取数据?相关的知识,希望对你有一定的参考价值。
我用的springboot框架,redis版本为:redis-2.8.17,本机测试的时候redis读取都没问题,应用部署到服务器以后就读取不了数据了。应用和redis同在一个服务器,redis里面的地址是127.0.0.1,端口6379也没问题,应用启动的时候会检查redis是否可以连接,无法连接的时候应用是启不起来的,能启动说明redis连接没问题啊,但是就是redis存取不了数据,请大神指点可能性或解决方案
参考技术A 大致意思是:错误的配置,当前数据不能持久化到硬盘,因为实例在写期间被配置为(stop-writes-on-bgsave-error option =yes)也即bgsave持久化过程中发生错误,就不能持久化了。 参考技术B redis日志找出来看看,应该会有报错信息Redis 缓存:当多个应用程序写入/读取数据时选择的最佳模式
【中文标题】Redis 缓存:当多个应用程序写入/读取数据时选择的最佳模式【英文标题】:Redis Cache: Best mode to choose when several applications would write/read the data 【发布时间】:2022-01-16 10:15:45 【问题描述】:我们有多个应用程序(大约 500 个)托管在不同的服务器 (IIS) 上。出于缓存目的,目前正在使用 .Net Enterprise Library(内存中)。但是当缓存增长时,这是应用服务器的开销。因此,我们计划使用 Redis 保留分布式缓存。
要求:多个应用程序会将数据写入/读取到/从 redis 缓存中。但是,我们希望将每个应用程序的数据分开。这样,嘈杂的应用程序不会对其他应用程序产生影响。此外,它会在数据隔离时提高数据搜索性能。
Redis 支持不同的解决方案(模式),例如 Standalone、Sentinel 和 Cluster。
我相信“独立”模式会像这样工作。在 Redis 服务器中,将有一个 redis 实例,可以在其中创建数据库。使用这种模式,多个应用程序的数据将存储在同一个数据库中。这可能使我们无法在应用程序级别存储数据。虽然我们可以使用命名空间(key 的前缀)来识别应用程序特定的数据,但越来越多的应用程序和数据会对应用程序的 key 搜索产生影响。另外由于是单线程的,预计在高峰时段会对操作产生影响。
考虑到上述要求,包括可扩展性和高可用性,请提出最佳模式。
P.S,我们会将 redis 安装在与应用服务器分开的专用服务器中。
【问题讨论】:
【参考方案1】:这里没有足够的信息来提出可靠的建议。
-
正在考虑哪种类型的吞吐量?
At peak all of our applications will have a combined throughput of 50K ops/second
-
缓存中将存储多少人和大小?
5M keys of average size 256bytes
-
停机时间的 SLA 和影响是什么?
need 95% uptime and downtime is not critical as the application can still function
-
您的 SRE 经验水平如何?
We have a crack staff of Follow the sun SREs
如果您有高 SLA 和低吞吐量和内存要求,Sentinel 可能会工作。
如果您有高 SLA 和高吞吐量和内存需求集群。
如果您的 SRE 级别较高,则上述任一选项都可以使用,但如果不是这样,您可能需要考虑托管或商业支持的选项。
【讨论】:
以上是关于应用部署到服务器redis无法读取数据?的主要内容,如果未能解决你的问题,请参考以下文章
使用数据库连接将代码部署到 Azure Web 时,Flask 应用程序无法呈现,但在本地服务器上工作正常
[云原生专题-51]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件Redis微服务部署过程
在 App Engine Standard 上部署时无法生成 quickstart.xml