Redis是什么,有什么特点,在哪些场景可以应用,为什么要进行数据迁移?带着这些疑问,我们跟随宜信普惠,来走进Redis的世界。
在宜信普惠看来,Redis是一个开源,内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
Redis 有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis 的数据类型都是基于基本数据结构,同时,对程序员透明,无需进行额外的抽象。
Redis 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis可以做很多内部复杂性很强的事情。
至于Redis的应用场景,宜信普惠表示,可以参考以下方面:热点数据的缓存,使用Redis缓存,相比于memcached还提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制可以选择;统计点击数,由于单线程,可以避免并发问题,保证不会出错;队列,由于Redis把数据添加到队列是返回添加元素在队列的第几位,所以可以做判断用户是第几个访问这种业务,队列不仅可以把并发请求变成串行,并且还可以做队列或者栈使用;分布式锁与单线程机制,验证前端的重复请求(可以自由扩展类似情况),可以通过Redis进行过滤;最新列表;排行榜。
那么,为什么要进行Redis数据迁移呢?宜信普惠发现,老服务器上内存一直报警,所以要把一部分Redis数据迁移到新服务器上去。简单来说,迁移的方式有两种,一种是停服务器,搬迁数据;另一种通过主从同步转移。