Java工程师是如何使用Redis的?
在分布式和微服务架构遍地开花的实践中,Redis一直是分布式缓存的首选,可谓经久不衰,独树一帜。Redis运行在内存上,支持持久化NoSql数据库。它是目前最流行的NoSQL数据库之一,也被称为数据结构服务器。
为什么使用Redis?Redis不仅支持简单的k/v数据,还提供了list、set、zset、hash等数据结构的存储。Redis支持主从模式应用。Redis支持数据持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载使用。Redis单个值的最大限制是1GB,memcached只能存储1MB的数据。由于种种原因,Redis成为了我们缓存架构的首选,我也是在开始码农生涯的时候接触到了Redis,不过当时使用起来还是比较简单的。
当初由于互联网团队的初期建设,各种中间件都需要自己搭建,包括Redis。我们用Docker搭建了一个Redis集群,采用主从式Redis架构,然后用Sentinel模式监控Redis集群,也是通过Sentinel使用。通过Spring或SpringBoot的sentry连接连接Redis,将其注册为Bean,然后使用序列化的键值结构缓存所需的数据。由于领导风格的原因,我们只允许使用Key-Value的基本功能来操作Redis。至于原因,没有进一步研究。
然后,他跳到了现在的公司,公司把Redis封装成基础服务,而业务团队可以通过加密字符串直接连接,基础架构团队负责背后的高可用、主从分片和容灾。基础架构团队提供的操作方法并不局限于使用Key-Value的get、set、delete等方法,而是提供了Redis几乎所有的命令,包括inc、sadd等计数和集合操作。当然,有了这些,对程序员的要求就更高了,在合适的场景下选择合适的命令进行操作也不容易。
或许,使用R
redis某个主节点挂了后,会变为从节点么?
如果是搭车如果构建了主从节点,那么如果主节点被挂起,从节点仍然可以使用,但是它不会成为从节点,除非它是redis集群。