最近,根据业内声明,一些项目中制止使用redis。为何?本文将分析这一开发趋势,并给出解决方案。
要回答这一问题,我们需要斟酌一下Redis本身的特性。对利用程序开发者而言,为了数据存取和更新,Redis表格提供了高效易用的访问方式,利用程序易于更新和查询数据,有助于实现利用程序的负载均衡和内容缓存。但是,Redis、内存和磁盘的使用相结合,这些都具有缺点,比如造成额外的负荷,下降容器对用户的响应速度和逻辑复杂性。
那末,为何项目开发者制止使用Redis,而不是提供替换技术?这就要从节俭服务器资源和减少本钱两个角度来分析。
从资源有效利用的角度来看,Redis和其他数据库的结合确切存在资源的消耗,特别是它在管理大量数据的操作上。对使用Redis的项目部署,服务器的资源占用比较高,这就引发了服务减少的需求,并且会致使更多机器构成和单独部署到服务。
另外一方面,从本钱管理的角度看,Redis在内存中处理数据需要更多的RAM,这多是财务支出和负担,如果采取其他技术,可以减少服务器运行本钱,节省资金。
为了解决以上问题并在项目中使用其他技术,应当重新斟酌使用灵活易用的开发技术,以替换Redis的使用。比如,应当斟酌使用Go、Rust、MySQL等有效的存储技术,全面发挥它们的优势。
同时,在使用新技术时,也应当斟酌新技术的安全性,例如可以斟酌为新技术加入数据加密功能。
“`Java
//使用AES加密
private static final String algorithm = “AES/ECB/PKCS5Padding”;
private static final byte[] keyValue = new byte[] { ‘T’, ‘h’, ‘e’, ‘B’, ‘e’, ‘s’, ‘t’, ‘S’, ‘e’, ‘c’, ‘r’,’e’, ‘t’, ‘K’, ‘e’, ‘y’ };
public static String encryptAES(String data) throws Exception {
Key key = generateKey();
Cipher c = Cipher.getInstance(algorithm);
c.init(Cipher.ENCRYPT_MODE, key);
byte[] encVal = c.doFinal(data.getBytes());
String encryptedValue = Base64.encodeBase64String(encVal);
return encryptedValue;
}
:
public static String decryptAES(String encryptedData) throws Exception {
Key key = generateKey();
Cipher c = Cipher.getInstance(algorithm);
c.init(Cipher.DECRYPT_MODE, key);
byte[] decordedValue = Base64.decodeBase64(encryptedData);
byte[] decValue = c.doFinal(decordedValue);
String decryptedValue = new String(decValue);
return decryptedValue;
}
private static Key generateKey() throws Exception {
Key key = new SecretKeySpec(keyValue, algorithm);
return key;
}
本文主要讨论了项目中制止使用Redis的缘由,并提出了替换Redis的可行性方案,即便用更有效、更安全的开发技术。在斟酌新技术时,也要注意安全性,以保证利用程序.最后,一旦制止使用Redis,就意味着项目开发者将前往谢绝。
本文来源:https://www.yuntue.com/post/186935.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏