Redis介绍

Redis一己之见

  redis全称 REmote DIctionary Server(Redis),是一个由Salvatore Sanfilippo写的key-value存储系统。

  从个人的角度出发,Redis在开发使用上来说,主要体现为,简单

  主要是对比传统sql数据库,Redis存储类似于HashMap数据结构,对数据的读取逻辑效率远胜于传统关系型数据库,所以通常在应用系统中作为缓存层出现。

  简单主要是体现在Redis的数据结构和使用,Redis的基本数据结构遵从key-value形式的模型,对于Redis的数据操作来说,无非是换着各种各样的形式来操作value。

Redis常规的应用场景

  各种缓存:在一个软件系统中,很多时候都会存在一些数据,频繁访问但并不需要很高的实时性,这种数据通常会使用缓存来进行访问,以减少后端服务的计算压力以及数据库的压力,例如存储用户的session标志,一些统计数据(例如网站某些逻辑统计的评论数量,点赞数量等),一些排序计算结果结果(最新帖子最热帖子等)

  计数器:利用Redis自带的记录一些统计数量,例如PV/UV,由于其单线程的命令执行,不会存在数据修改的并发问题。

  (分布式)锁:在我们的应用程序中,时常会存在某些逻辑是并发的,这时可以使用Redis来创造一个锁,而拿到锁的代码可以执行,而没有拿到锁的代码则直接返回或者继续等待,以Redis的数据为中心,控制逻辑的并发。例如,一个操作是需要拿出用户的状态通过一系列判断再去修改用户的状态(拿出->判断->修改),但是两个操作同时出现时,可能在一个操作的“判断”阶段,另一个操作已经修改了状态,那么这里的“判断”得出正确的结果并不一定是正确的结果了,因为原有的状态已经被修改,这时,则需要通过锁来控制每一次操作(拿出->判断->修改)的连贯性。

  消息队列:Redis提供列表数据结构,通过push(发布)和pop(接收)操作可以简单实现消息队列,当然,和Kafka和Rabbitmq这些专业的消息队列中间件来说,除了基本的队列功能以外,缺少很多功能特征,所以Redis的消息队列一般使用在简单要求较低的消息队列中。

原文地址:https://www.cnblogs.com/TuringLi/p/12757438.html