qq_张先生
2019-07-31 18:05
采纳率: 96%
浏览 5.8k

Redis一般是干什么用的?在什么场合下使用?大体上介绍一下

Redis一般是干什么用的?在什么场合下使用?大体上介绍一下?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 毕小宝 2019-08-01 06:51
    已采纳

    是一个单线程的 NoSQL 数据库,主要用来做数据缓存的,一般大型网站的应用和数据库之间的那一层就是 Redis 。
    比如说,京东商城的页面查找功能,用户接触到的查询的第一层就是 Redis 数据缓存层,缓存中找不到的数据,再进入数据库查询。
    好处:Redis 中缓存热点数据,能够保护数据库,提高查询效率。

    点赞 4 打赏 评论
  • Json-Huang 2019-07-31 20:41

    redis是一个key-value存储系统,可以用在如下场景,1,2,5用得较多
    1、缓存
    热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存。

    2、计数器
    单线程避免并发问题,高性能,如减库存。

    3、队列
    相当于消息系统,ActiveMQ,RocketMQ等工具类似,但是个人觉得简单用一下还行,如果对于数据一致性要求高的话还是用RocketMQ等专业系统。

    4、位操作
    使用setbit、getbit、bitcount命令,如统计用户签到,去重登录次数统计,某用户是否在线状态等;

    redis内构建一个足够长的数组,每个数组元素只能是0和1两个值,然后这个数组的下标index用来表示我们上面例子里面的用户id(必须是数字哈),那么很显然,这个几亿长的大数组就能通过下标和元素值(0和1)来构建一个记忆系统,上面我说的几个场景也就能够实现。用到的命令是:setbit、getbit、bitcount

    5、分布式锁与单线程
    验证前端的重复请求(可以自由扩展类似情况),可以通过redis进行过滤:每次请求将request Ip、参数、接口等hash作为key存储redis(幂等性请求),设置多长时间有效期,然后下次请求过来的时候先在redis中检索有没有这个key,进而验证是不是一定时间内过来的重复提交。

    秒杀系统,基于redis是单线程特征,防止出现数据库“爆破”

    6、最新列表
    redis的 LPUSH命令构建List。

    7、排行榜
    谁得分高谁排名往上。命令:ZADD(有序集,sorted set)。

    点赞 5 打赏 评论

相关推荐 更多相似问题