什么是redis,redis能做什么,redis的应用场景

1、什么是Redis

    Redis是一款内存高速缓存数据库。Redis全称为:Remote     Dictionary    Server (远程数据服务),使用C语言编写,Redis是一个key-value存储系统(键值存储系统),支持丰富的数据类型,如:String、list、set、zset、hash。

  

                                 Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。使用C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。

2、Redis特点

Redis以内存作为数据存储介质,读写数据的效率极高。

Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启,数据也不会丢失。

Redis的存储分为内存存储、磁盘存储和log文件。

Redis可以从磁盘重新将数据加载到内存中,也可以通过配置文件对其进行配置,因此,redis才能实现持久化。

Redis支持主从模式,可以配置集群,更利于支撑大型的项目。

3、Redis应用场景,能做什么

         众多语言都支持Redis,因为Redis交换数据快,在服务器中常用来存储一些需要频繁调取的数据,节省内存开销,也极大的提升了速度。

        将一些热点数据存储到Redis中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

        1、会话缓存(最常用) 

        2、消息队列(支付)

        3、活动排行榜或计数

        4、发布,订阅消息(消息通知)

        5、商品列表,评论列表

4、Redis数据类型

        Redis一共支持五种数据类型:String(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted  set有序集合)

        String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB

        Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象

        List(列表):是redis的简单的字符串列表,按插入顺序排序

        Set(集合):是String字符串类型的无序集合,也不可重复

        ZSet(sorted  set  有序集合)是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。

5、redis的服务相关命令

      slect#选择数据库(数据库编号0-15)

      退出 # 退出连接

      信息 # 获得服务的信息与统计

      monitor #  实时监控

      config  get  #  获得服务配置

       flushdb #  删除当前选择的数据库中的key

       flushall # 删除所有数据库中的键

6、Redis的发布与订阅

        Redis的发布与订阅(发布、订阅)是它的一种消息通信模式,一方发送信息,一方接收信息

             

 

 下图是有新消息发送给频道1时,就会将消息发送给订阅它的三个客户端

 

7、Redis的持久化

Redis持久有两种方式:快照(RDB),仅附加文件(AOF)

快照(RDB):1、将存储在内存的数据以快照的方式写入二进制文件中,默认dump.rdb中

             2、保存900 1               # 900秒内如果超过1个key被修改,则启动快照保存

             3、保存300 10            # 300秒内如果超过10个key被修改,则启动快照保存

             4、保存60 1000         # 60秒内如果超过10000个重点被修改,则启动快照保存

仅附加文件(AOF):1、使用AOF持久时,服务会将每个收到的写命令通过写函数追加到文件中(appendonly.aof)

                                        2、AOF持久化存储方式参数说明

                                             appendonly  yes    #开启AOF持久化存储方式

                                             appendfsync   always   #收到写命令后就立即写入磁盘,效率最差,效果最好

                                             appendfsync   everysec     #每秒写入磁盘一次   效率与效果居中

                                              appendfsync   no               #完全依赖操作系统,效率最佳,效果没法保证

8、Redis自带相关测试工具

                 redis-benchmark   --help

                  redis-benchmark     -n   10000  -q

 

posted @ 2019-07-30 00:39  繁春  阅读(84667)  评论(1编辑  收藏  举报