zoukankan      html  css  js  c++  java
  • Redis基础

    Redis基础知识

    toc
    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

    • Redis与其他key-value缓存产品有以下三个特点:
      • 1.Redis支持数据的持续化,可以将内存中的数据保持再在磁盘中,重启的时候可以再次加载进行使用。
      • 2.Redis不仅仅支持简单的key-value类型的数据,同时还提供List、Set、Zset、Hash等数据结构的存储。
      • 3.Redis支持数据的备份,即master-slave模式的数据备份。

    Redis版本说明

    Redis版本号采用标准惯例:主版本号.福版本号.补丁级别,一个副版本号就标记为一个标准发行版本,例如:1.2,2.0,2.2,2.4,2.6,2.8,奇数的副版本用来表示非标准版本,例如2.9.x发行版本是Redis 3.0标准版本的非标准发行版本。

    根据Redis的命名规则,我们首先要判定我们要使用的是不是稳定版本,避免在生产环境使用测试版本,出现不可控问题。尽量选择市面主流的大版本,新的版本虽然增加了很多的功能,但是并不一定最新的就是最适合我们的。我尽可能选择使用者众多的,可以提升相互交流的空间同时也提供更好的可维护性。

    Redis性能与特性

    1.速度快

    这也是我们为什么要选择内存数据库的原因,也是我们很重要的一个参数指标。Redis使用C语言开发,C语言号称最贴近系统的开发语言。

    Redis所有数据都会存在内存当中。举个例子:以人作为参考的话,在大脑记忆力的东西我们想找的话一定是最快的,其次才是我们所记录子啊书本上的东西。

    2.持久化

    存在脑子里的知识可能忘记丢失,持久化存储到纸上(硬盘)的数据才相对于最稳定。

    3.支持多种数据结构

    同样key-value的数据库,Redis比Memcache要好一些,很好的支持了String、List、Set、Hash、Zset数据结构。

    4.功能丰富

    Redis同样也支持事务、流水线、发布/订阅、消息队列功能。当然比如消息队列功能来讲,还是专业的MQ比较好,毕竟术业有专攻。什么样的东西做什么样的事情。

    5.高可用以及分布式

    主从复制配置简单,容易上手。可以提供基本的数据备份。技术条件支持的情况下,容易实现读写分离,备份同时提高性能。也可以使用Sentinel实现很好的主从切换,完成高可用。在3.0以后的版本中拥有了官方的集群工具Redis-Cluster实现了分布式的功能,使我们的容量的到了很好的扩展。

    Redis应用场景

    1.缓存

    缓存肯定是大家应用场景最多的一个方向,几乎现在所有的中大型网站,都用到了缓存。

    合理的使用缓存不但能提高网页的访问速度,也能够降低后端数据库的压力。

    根据数据类型和实际使用的情况,设置灵活的键值过期策略,又可以保障数据的有效性,所有用在缓存的场合非常多。

    2.计数器

    好多不熟悉业务或者开发的运维同学可能会问,计数器究竟是什么?

    我们可以通过我们实际的例子来说明。比如这一篇博文,有多少来浏览,都会有记录。

    那么这个记录怎么来做,每次浏览的话,这个记录都会+1,当浏览人数太多的时候,或者文章基数较大的时候,每次都去数据库来操作读写这个数据,肯定对后端数据库会有较大的压力。

    如果我们使用Redis的 incr 来实现这个功能,在内存中来计数,不但性能好,还可以减轻后端数据库的压力。所以Redis!

    3.排行榜

    比如音乐或者某比赛排行榜,我们可以使用音乐名作为元素,使用播放次数作为分值。

    如果使用Redis的 zadd 来实现这个功能,使用zrevrange来按照分值获取前10名或者50名的歌曲,或者获取歌曲排名,都是操作比较容易的,试想一下这种范围取值,如果使用Mysql来操作,一般会全表扫描,对I/O、数据库都是压力,所以是Redis。

    4.定位功能(3.2开始支持)

    Redis的GEO特性,我们可以通过提前输入具体的地理位置信息,经纬度一些主要内容,在使用时,可以快读定位到APP使用者的位置,以及位置之间的距离等。

    5.简单的消息系统

    在日常的应用开发中,消息队列的使用还是比较常见的,Redis也有阻塞队列的功能。能够让程序在执行时被另一个程序添加到队列。

    6.交友

    我们合一存储好友的信息,比如爱好、兴趣等,通过使用Set集合的差查找爱好不同,或者爱好相同的点,增加交友匹配度等。

    当然,Redis的实际应用还远不止这些,既然这个数据库可以在我们实际的应用中,解决如此多的痛点问题,也有如此多的应用场景,那么肯定使用的公司一定比较多,为了提高我们自身的能力,或者竞争力,能够更好的解决或者运维好这一款数据库,我当然需要深入的去学习。

  • 相关阅读:
    ◆◆0[问题解决]REUSE_ALV_FIELDCATALOG_MERGE丢失catalog字段
    不同类型ALV的catalog数据转换[LVC_TRANSFER_TO_SLIS][LVC_TRANSFER_FROM_SLIS]
    ◆◆0ABAP ALV分类以及对应的函数,类小结
    [代码]如何在ALV头中显示Logo图片-[REUSE_ALV_GRID_DISPLAY]
    ◆◆0SALV-如何刷新显示
    ◆◆0[REUSE_ALV_GRID_DISPLAY_LVC]-显示单选按钮(radio button)
    ◆◆0[REUSE_ALV_GRID_DISPLAY_LVC]ALV中字段显示前导零(leading zero)
    ◆◆0[REUSE_ALV_GRID_DISPLAY_LVC]-显示布局按钮(layout button)
    [问题解决]ALV标准过滤功能失效
    ◆◆0SALV-设置SALV选择模式
  • 原文地址:https://www.cnblogs.com/songguoyou/p/11883943.html
Copyright © 2011-2022 走看看