zoukankan      html  css  js  c++  java
  • redis相关

    高性能缓存数据库

    数据存在内存条不在磁盘上

    10万每秒

    持久化保证数据不丢失

    特性: 1〉速度快 2〉键值对的数据结构服务器 3〉丰富的功能: 4〉简单稳定 5〉持久化 6〉主从复制 8〉高可用和分布式转移 9〉客户端语言多

    二、使用场景

    1,缓存数据库: 2,排行榜 3,计数器应用 4,社交网络 5,消息队列

    RESP协议:封装了条数 长度(tcp 报文格式 人类可读)

       

    单线程:问题 等待 阻塞

     内部: 队列

    key唯一:value 五种

    string 

    分布式锁 基于设置过期时间

    flushdb  清除数据库

    单个设置:效率问题. 建立连接 网络消耗时间特别多

    一次性批量设置  mset

    字符串的追加:append getrange

    哈希表

    哈希hash是一个string类型的field和value的映射表,hash特适合用于存储对象

    map.put() --->不要序列化  ------ redis 

     用哈希

    失效时间:expire user:1 10

        实现用户信息存储:使用hash类型,简单直观,使用合理可减少内存空间消耗。解决了对象序列化存入redis,序列化与反序列化的开销依旧更新属性时需要把userInfo全取出来进行反序列化,更新后再序列化到redis的麻烦。但是后面(value值在一定范围内编码格式会变,超过一定的内存,512M)发现hash类型需要要控制ziplist与hashtable两种编码转换,且hashtable会消耗更多内存erialize(userInfo);

    可以设置失效时间

    列表<list>

    集合<set>

    二维表(hash)

    zset(有序集合)

    时间 用时间戳

    数据库慢查询 

    玩掏空的

    order by 可以排序的值.   

    key ---> value.  分值

    键可以匹配 *。相当于模糊查询

    redis 有16个数据库 默认0

    select 15

    实战:

    关系数据库设计:  常规设计   orderby慢查询  显然不满足需求

    key的设计:内存数据库 内存昂贵 key和value都会占内存 

    key设计:越短越好 表达含义(闻鸡起舞)

    与你的业务模块 功能模块 表

    key和value优化(注意留文档,不然别人看不懂)

    key并不一定是hash

    order

    Zadd tm.or:001(根据业务,两级就够了)

           

             记录已投票用户,防重投

             已对002文章投票过的用户,使用SET存储(无序,不能重复)

            要点:并没有直接记录用户编号,而是记录用户对应的key值,先检查当前用户存不存在,存在就不让投了。

            要点:order by 有时间时要转化成时间戳 (能转成整型的尽量) 提高性能

          

            总体设计:

            文章:涉及到基本信息 设计到hash

                     二维数据存储

    缓存数据变化:

    已投票用户 set集合里

    key 唯一标示 雪花算法  自增uuid

    操作要与唯一标示绑定

    expire方法  设置失效时间

    投票

    查一下用户是否已经投过票

    没有直接去判断而是直接往里头丢数据,不需要去查

    因为当你往里头丢数据,如果你真的插入成功,会返回1,通过对1的判断

    即判断了又插入了

  • 相关阅读:
    css属性设置
    自由从摇篮开始 ——杨支柱
    提醒幸福
    随记
    那些回不去的年少时光(桐华)
    Javascript 与正则表达式
    XmlHttpRequest对象的获取及相关操作
    CSS的4种引入方式及优先级
    c#textBox控件限制只允许输入数字及小数点,是否为空
    c# 循环界面控件
  • 原文地址:https://www.cnblogs.com/terrycode/p/12387665.html
Copyright © 2011-2022 走看看