zoukankan      html  css  js  c++  java
  • radis

    Redis简介

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

    Redis 与其他 key - value 缓存产品有以下三个特点:

    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份。

    Redis 优势

    • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
    • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    缓存访问快,速度快
    内存资源浪费,缓存有限
    主动发现热点key存储

    Redis热点

    热点指的是访问量特别大的数据

    Redis缓存击穿和缓存穿透

    缓存击穿:指的是缓存中没有,但数据库中有数据,热数据不过期
    缓存穿透:指的是缓存和数据库没有数据

    Redis 安装

    windows:https://www.runoob.com/redis/redis-install.html
    
    linux:https://www.cnblogs.com/hunanzp/p/12304622.html

    启动

    ./redis-server ../redis.conf
    
    '''
    redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
    
    启动 redis 服务进程后,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了
    '''

    Redis 命令

    Redis 命令用于在 redis 服务上执行操作。

    要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。

    语法

    Redis 客户端的基本语法为:

    无密码:redis-cli.exe -h 127.0.0.1 -p 6379
    有密码:redis-cli -h 127.0.0.1 -p 6379 -a "mypass"

    测试是否启动

    在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。

    $ redis-cli
    redis 127.0.0.1:6379>
    redis 127.0.0.1:6379> PING
    
    PONG

    Redis五种数据类型

    字符串 String

    https://www.runoob.com/redis/redis-strings.html

    哈希 Hash

    https://www.runoob.com/redis/redis-hashes.html

    列表 List

    https://www.runoob.com/redis/redis-lists.html

    集合 Set

    https://www.runoob.com/redis/redis-sets.html

    有序集合 sorted set

    https://www.runoob.com/redis/redis-sorted-sets.html

    Redis 持久化

    持久化,把内尺寸数据写到磁盘防止丢失

    RDB:将redis在内存中的状态写在硬盘中
       优势:RDB文件紧凑,全面备份,非常适用于备份和灾难恢复
       生成RDB文件的时候,redis主进程会fork()一个子进程处理所有保存工作,主进程不需要进行任何IO操作
       RDB 在恢复大数据是的速度比AOF的恢复速度快
       缺点:RDB快照是一次全量备份,存储的是内存数据的二进制序列化形式,存储上非常紧凑。
       当进行快照持久化时,会开启一个子进程专门负责快照持久化,
       子进程会拥有父进程的内存数据,父进程修改内存子进程不会反应出来,
       所以在快照持久化期间修改的数据不会被保存,可能丢失数据

    AOF:记录所有变更操作命令,在服务器启动时,重新执行还原数据
           优点:最大程度的保证数据不丢失
       AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损
       AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写
       AOF日志文件的命令通过非常可读的方式进行记录,这个特性非常适合做灾难性的误删除的紧急恢复 缺点:日志记录大
    对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大 
    AOF开启后,支持的写QPS会比RDB支持的写QPS低,因为AOF一般会配置成每秒fsync一次日志文件,当然,每秒一次fsync,性能也还是很高的
    以前AOF发生过bug,就是通过AOF记录的日志,进行数据恢复的时候,没有恢复一模一样的数据出来
    
    
    
    比较:AOF文件比RDB更新频率更高
            AOF更安全
            RDB性能比aof好

    RESP

    RESP是redis客户端和服务端之前使用的通信协议

    特点:简答,快速解析,可读性好

  • 相关阅读:
    poj 2778 AC自己主动机 + 矩阵高速幂
    Web Services 指南之:Web Services 综述
    SQL多表连接查询(具体实例)
    HibernateUtil
    哈夫曼编码问题再续(下篇)——优先队列求解
    MySQL Merge存储引擎
    程序的入口及AppDelegate窗体显示原理
    几个免费的DNS地址
    kettle与各数据库建立链接的链接字符串
    【转】利用optimize、存储过程和系统表对mysql数据库表进行批量碎片清理释放表空间
  • 原文地址:https://www.cnblogs.com/Pythonzrq/p/14168902.html
Copyright © 2011-2022 走看看