美文网首页
redis基础入门

redis基础入门

作者: 一个喜欢烧砖的人 | 来源:发表于2018-08-13 23:01 被阅读1次

    redis数据结构

    • string
      1、value是一个string,如果是数字型的string,则可在基础上加减
      2、value是一个string,则可直接操作字符串的附加(append)操作

    • list
      1、无序的,但是是按照插入顺序排序的(本身是无序的,但是是以插入顺序储存的)
      2、redis中的list的内部实现是链表(具有内部是链表结构的特性),而java中的list的内部实现是数组
      3、因为redis的list是链表结构,所以在表头或者表尾删除添加效率非常高,如果在中间的话,效率特别低(需要遍历找出所在位置)

    • set
      1、没有按照插入的顺序储存
      2、元素不能重复,如果重复则插不进去
      3、可以求交集、并集、差集等

    • sort-set
      1、没有按照插入的顺序储存
      2、元素不能重复,如果重复则插不进去
      3、每个元素都会携带一个score与之关联,(score会按照从小到大的顺序排列)

    • hash
      1、可以存储用户信息(user的name、age、address)

    redis特性

    1、一个redis最多16个数据库(0-15)

    redis的订阅与发布

    • subscribe channel (订阅频道,例如:subscribe mychat)
    • psubscribe channel* (批量订阅频道,例如 psubscribe my*(以myk开头的))
    • public channel content (在指定频道中发布消息)

    redis持久化

    • RDB持久化(默认支持,无序配置)
      制定时间将内存中的数据写入磁盘
      优化:
      缺点:

    • AOF持久化
      以日志的形式记录服务器所处理的每一个操作,在服务器启动之初会读取改文件来重新构建数据库,以保证启动后数据库的数据完整
      有三种同步:每秒同步、每修改同步,不同步

    • 无序持久化
      通过配置来设置关闭持久化(这样就是一个纯缓存)

    • 同时使用rdb和aof

    • 持久化总结:
      1、对于相同大小的文件,aof文件通常大于rdb文件
      2、根据同步策略的不同,aof在运行效率上慢于rdb,总之,每秒同步策略较高,同步禁用策略效率和rdb一样高效

    redis 事务

    开启事务:multi (对应mysql的 begin transaction)
    提交:exec (对应mysql的 commit)
    回滚:discard (对应mysql的rollback)

    redis 说道

    eg:50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s(仅供参考)

    • 传统数据库的弊端
      1、数据库的高并发读写需求(传统的每秒几万读取还撑得住,如果是写的话,磁盘io困难)
      2、对海量数据的高效存储和访问(都是pb级别)
      3、数据库的高扩展和延伸(横向扩展,添加节点)
    • redis使用场景
      1、缓存(数据查询,短连接,新闻内容,商品内容等)(最多使用)
      2、聊天室的在线好友列表
      3、任务队列(秒杀,抢购,12306)
      4、应用排行榜
      5、网站统计分析
      6、数据过期处理
      7、分布式集群架构中的session分离
      8、rpoplpush(消息队列的使用)
      9、set 的唯一性和 (交集、并集)应用于服务器
      10、sort_set可用于游戏排名(用户积分排名因为score 可进行排序)

    redis集群模式(后期介绍)

    相关文章

      网友评论

          本文标题:redis基础入门

          本文链接:https://www.haomeiwen.com/subject/eijpbftx.html