redis
redis 哨兵模式如何手动删除key?
哨兵模式如何手动删除key?
可以用SENTINEL RESET * 命令删除哨兵模式下的key
Java工程师是如何使用Redis的?
不仅仅是Java工程师,基本上所有平台开发工程师都需要使用redis,主要是作为代替memcached的缓存。
由于涉及到底层,所以Redis是用C语言编程的一种能够快速读写的工具。但是实际使用中,Java,PHP,Python等编程语言,都是可以使用Redis的,这种良好的语言扩展性,使Redis快速在原本memcached一家独大的缓存领域里攻城略地,并迅速划定了自己的圈地。
Redis最突出的优点就是读写速度极快,既可以作为Server与MySQL之间的缓存,也可以作为分布式集群系统中多台Server之间的缓存。
接下来我们就由上述两种情况来简单介绍。
Server与MySql之间的缓存众所周知,MySQL虽然借助索引能够提高查询速度,但是如果用户所有的读请求都到MySQL中去拿的话,还是会有很多的查询与读取消耗。这种场景,如果将一段时间内频繁被读取的数据提前放到redis中,利用其快速读取优势,一方面减少了MySQL的读库压力,一方面也能够加速用户侧感受到的页面访问速度。比如情人节快到了,大众点评直接将花店,送花外卖等信息放到缓存里,绝对能够大幅减少MySQL的读取压力。
此外,在一些场景下,有些数据在完全入库之前,还需要数次的修改。中间的修改过程,如果每次都要去修改MySQL,也是对MySQL增加了读写压力,这时候,如果使用Redis来存储中间态,就能进一步缓解MySQL的读写压力,从而提高整体服务的稳定性。
server与server之间的缓存出于扩展性和稳定性方面的考虑,一些集群规模的服务,通常会有多台相同功能的Tomcat。这样就有一种可能,假如一个任务由2个步骤组成,第一个步骤是用户发起任务,第二个步骤是Tomcat反馈后用户点击确认才会继续处理。此时,有一个用户发来一个任务,这个任务由A Tomcat处理了第一步,然后反馈给了用户,用户点击了确认后这个请求却被发送给了B Tomcat,作为B Tomcat也是一脸蒙蔽,由于并不能与A Tomcat相互通信,它并不知道前因后果。
这时候假如没有server之间的缓存,这个任务就进行不下去了。
有了server之间的缓存,A Tomcat在处理完第一个步骤后,会把自己做的事情记录在redis中,然后等第二个步骤需要执行的时候,无论请求是给了A还是B,只需要到redis中读取下上一步的记录,就能继续进行了。
这就是server间缓存的意义。
以上只是我举的非常简单的例子,希望能够辅助大家理解,并且明白redis并不局限于JAVA语言。
我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。