当前位置:   article > 正文

Redis知识点_it知识点redis

it知识点redis

Redis
    NoSQL
        NoSQL,泛指非关系型的数据库。随着互联网 web2.0 网站的兴起,传统的关系数据库
        在处理 web2.0 网站,特别是超大规模和高并发的社区,暴露出来很多难克制的问题,NoSQL
        Redis 是发展最快的,而且是我们目前必须要掌握的
        一个技术
        关系型数据库:表格,行,列
        非关系型数据库:键值对 Map<String,Object>
        
    NoSQL特点
        1 解耦
        2 方便扩展(数据之间没有关系,非常容易扩展)
        3 大数据量高性能(Redis 一秒可以写 8 万数据,读取 11 万数据)
        4 数据类型是多样型的,5 种常用,3 种特色(不需要事先设计数据库,随取随用)
        5 传统 RDBMS 和 NoSQL 的区别
            也就是关系型和非关系型数据库的区别
    NoSQL四大分类
        KV键值对
        文档型数据库(bson格式,和json一样)
        列存储数据库
        图形关系数据库
        
        解决应用场景
            通过反射创建对象
            通过反射获取设置属性
            通过反射调用方法
    经典应用场景
        做高速缓存
        发布订阅模式
        分布式锁,共享session
        
Redis的安装和使用
  ○ 安装
    参考之前linux文档进行安装
使用
    修改配置
      bind 设置redis可以通过远程连接,默认只能localhost连接
      port 指定端口号,使用默认即可(当端口冲突的时候需要修改)
      daemonize: 设置为yes代表可以后台启动
      requirepass: 指定密码  redis 默认是保护模式,只有配置了密码才能远程连接
      
    在redis安装目录下启动 redis-server redis.conf
    连接redis
        redis-cli进行连接
        auth 密码   进行权限校验
        keys * 查看所有的key
基础操作
    select 选库
    set key value 设置值
    get key  获取值
    del key  删除key
    flushdb 清空当前库
    flushall 清空所有库
    expire key seconds 设置key的过期时间
    ttl key    查看剩余时间
  ○ Redis五大基础数据类型
    String
        set
        get
        del
        setex key expire value 设置kv并指定过期时间
        setnx key value  设置如果key不存在则添加
        getrange key start stop  获取指定返回的内容
        strlen key 获取长度
    List
        lpush key elements 左侧插入即头部插入
        rpush key elements 右侧插入即尾部插入
        lrange key start stop 查看指定索引范围的内容
        lpop / rpop 出栈
        lrem key count element 删除指定个数的element元素
        ltrim key start stop 截取数组指定范围的内容
        llen key 查看数组的长度
        rpoplpush source target     source尾部出栈target头部入栈
        lset key index value 设置指定索引的值
        linsert key before/after element value 在指定元素前后添加内容
    Set
        sadd key value
        smembers key 查看所有成员
        sismemeber key element 判断是否是成员
        srem 删除
        srandmemeber 随机获取一个成员
        spop 随机出栈
        sdiff 求差
        sinter 求交集
        sunion 求并集
    Hash
        hset key field value 设置元素
        hget key field 获取元素
        hgetall key 获取所有
        hdel key field 删除元素
        hlen key field 获取长度
        hkeys 获取所有的key
        hvals 获取所有的val
        hsetnx 如果不存在设置,存在就忽略
        hincrby  += 整数型
        hincrbyfloat += 浮点型
    ZSet(对应的有排序的set)
        除了基础的元素之外增加了一个score的字段,默认按照score进行排序
        zadd key score element 添加元素
        zrange key min max 查看指定排名范围数据。(默认按照分数从小到大)
        zrevrange key max min查看指定排名范围数据。(按照分数从大到小)
        zrem 删除
        zrank key element 获取排名
        zrevrank key element 获取逆序排名
        zrangebyscore 获取指定得分范围
        zrevrangebyscore 获取指定得分范围(逆序)
        
    redis持久化问题
        RDB 
            默认的一种方式
            fork了一个子线程,又子线程定期同步主线程的数据,保存到本地形成文件
            优点
                对主线程的IO 没有影响,所有针对redis的读写性能不会被影响
                做备份和恢复的时候效率是比较高的,非常适合做大量数据的备份
            缺点
                数据可能会存在丢失,如果对于数据要求严格尽量不要使用这种
                fork了一个线程 内存占用翻倍
        怎么使用
            redis默认开启该模式
            可以配置dump的文件的名字和位置
            dump_test.rdb
            dir ./
            
        如何主动触发保存
            save:阻塞之后保存
            bgsave:不阻塞保存
        如何恢复备份
            只需把dump.rdb放到指定位置即可
    AOF
        通过追加set日志的方式,进行持久化,恢复的时候按照日志执行即可完成恢复
        优点
            数据比较完整
        缺点
            日志文件过大
            备份和恢复速度慢
    rewrite机制
        当文件过大的时候,会对aof进行文加压缩,只保留最小能恢复的文件大小
    应用场景
        对数据完成性要求高,性能没那么高要求的时候
        
    怎么使用
        开启AOF配置即可
        appendonly yes
        appendfilename "appendonly.aof"
        
        
        
    删除机制
        计时器
            为每一个key启动一个计时器,到点删除
            CPU占用大,用时间换空间
        惰性删除
            访问这个key的时候才判断有没有过期,对过期的删除
            占用内存大,用空间换时间
        定期删除
            每秒执行hz次删除
            删除的时候是逐个库删除
            并不是完全删除,是抽样删除,抽样之后过期内存占用小于25%停止
        淘汰逐出机制
            如果内存满了怎么处理
            分类
                淘汰很久没用过的key
                淘汰使用频率最低的key
                淘汰即将过期的key
                随机淘汰
            怎么使用
                在配置中使用最大内存
                指定淘汰策略
        主备模式
        哨兵模式
        集群搭建
        常见集群架构
            master/slave
            去中心化
            

总结重点
    redis概述
    安装和基本配置
    五大数据类型
    持久化
        rdb和aof
    jedis
    了解删除和淘汰机制
    redis主备模式
        一主二从
        薪火相传
        反客为主
    哨兵模式
    集群搭建
    
            
            

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/518282
推荐阅读
相关标签
  

闽ICP备14008679号