• 技术文章 >数据库 >Redis

    简单易懂地介绍Redis缓存原理

    藏色散人藏色散人2020-10-09 16:41:19转载139
    下面由Redis教程栏目给大家介绍Redis缓存原理,希望对需要的朋友有所帮助!

    1. Redis是什么

    Redis 是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。 Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 Java中数据结构:String,数组,list,set map… Redis提供了很多的方法,可以用来存取各种数据结构的数据。

    2.特点(优势)

    1.数据保存在内存,存取速度快,并发能力强
    2.它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型)。
    3.redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。
    4.它提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。
    5.Redis支持集群(主从同步、负载均衡)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
    6.支持持久化,可以将数据保存在硬盘的文件中
    7.支持订阅/发布(subscribe/publish)功能 QQ群
    1、数据存放:存放到内存中,还能不定期持久化到磁盘。存取速度快,并发能力强,断电后数据不丢失。
    2、支持Value类型更多。
    3、多种客户端(语言 java php c# js)
    4、支持集群来扩展空间 8G+8G+16G
    5、开源(免费还有很多人维护)

    3. 安装Redis服务端

    Redis 的官方下载站是 http://redis.io/download,可以去上面下载最新的安装程序下来
    3.1. windows下的安装和使用
    1.下载redis程序软件
    使用redisbin32 或redisbin64
    2.绿色软件,不需要安装,直接使用
    在这里插入图片描述
    3.启动redis服务(带配置文件启动,和不带配置文件启动)
    在这里插入图片描述
    4.连接到redis进行操作
    cmd>{%redis%}/redis-cli -h ip地址 -p 端口号
    ip 默认为本地 -p 默认6379
    redis-cli -h 172.16.6.248 -p 6379
    cmd>{%redis%}/redis-cli

    1. 基本用法
      在这里插入图片描述

    2. Redis持久化配置

    在这里插入图片描述

    Redis 提供了两种不同级别的持久化方式:RDB和AOF,可以通过修改redis.conf来进行配置.
    在这里插入图片描述
    当满足持久化条件时,会进行持久化保存,还来不及保存的数据,会以aof日志的方式保存下来。
    Redis启动时,先解析日志文件(一堆命令),恢复数据。然后还要加载rdb文件(取并集)。

    4.RDB模式

    RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.
    如何关闭 rdb 模式:
    save “”
    save 900 1 //至少在900秒的时间段内至少有一次改变存储同步一次
    save xxx save 60 10000

    5.AOF日志追加模式

    AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。
    如何开启aof模式:
    appendonly yes //yes 开启,no 关闭
    #appendfsync always //每次有新命令时执行一次fsync,就将缓冲区的数据放入aof文件
    #这里我们启用 everysec
    appendfsync everysec //每秒 fsync 一次
    #appendfsync no //从不fsync(交给操作系统来处理,可能很久才执行一次fsync)
    其它的参数请大家看redis.conf配置文件详解

    6.Redis经典实用场景-缓存

    1. 6.1为什么要使用缓存

      把经常查询的数据,很少修改的数据存放到缓存中,减少访问数据库,降低数据库压力并且缓存一般都是内存,访问速度比较快。

    2. 6.2哪些数据适合放到缓存中

      经常查询:缓存就是提供数据查询高效访问。
      很少修改:修改时要同步修改缓存和数据库
      例如:地区数据、商品分类、数据字典 菜单(不考虑权限)

    3. 6.3选择合适的缓存

      Hibernate二级缓存,mybatis二级缓存,redis中央缓存
      Hibernate二级缓存,mybatis二级缓存默认不支持集群缓存,要使用redis

    4. 6.4怎么存储数据

      1) json:把要存放的数据转换为json类型的字符串
      保存缓存时:
      Java Object----------->json字符串
      获取缓存:
      json字符串-------->Java Object-
      Json框架:jdk-json-lib jackson gson fastjson
      在这里插入图片描述2)二进制存放:把要存放的数据序列化为二进制序列化框架实现

    7. 实现菜单缓存

    在这里插入图片描述

    以上就是简单易懂地介绍Redis缓存原理的详细内容,更多请关注php中文网其它相关文章!

    本文转载于:csdn,如有侵犯,请联系a@php.cn删除
    专题推荐:Redis
    上一篇:关于Redis批量写入的介绍 下一篇:关于redis数据库数量配置、切换及指定数据库
    第13期线上培训班

    相关文章推荐

    • php redis扩展安装不成功怎么办• php如何安装redis扩展• 关于Redis批量写入的介绍• php redis 批量删除keys的方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网