• redis学习笔记


    数据库的发展过程

    1、单机Mysql

    场景:网站访问量、数据量不大 

    瓶颈:无法解决数据量大,数据B树索引内存放不下,单机数据库无法承受访问量

    2、memcached缓存+读写分离

     瓶颈:表锁导致性能差,无法承受日益增长的数据量的需求

    3、mysql集群+分库分表

    场景:解决第二步瓶颈

    瓶颈:数据爆发式增长,包括数据类型,数据量,数据结构变化很快,效率低

    4、Nosql+RDBMS

    解耦

    方便扩展(数据之间没有关系,很好扩展!)
    大数据量高性能(Redis 一秒写8万次,读取11万,NoSQL的缓存记录级,是一种细粒度的缓存,性
    能会比较高!)
    数据类型是多样型的!(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无
    法设计了!)


    传统 RDBMS 和 NoSQL

    redis基于单线程的内存读写,一秒写8万次,读11万次,细粒度缓存,高性能。

    特性:持久化,集群,事务

     

    3V+3高

    海量Volume

    多样Variety

    实时Velocity

    高并发、高可扩、高性能

     redis的应用场景

    1、会话缓存(最常用)

    2、消息队列,比如支付

    3、活动排行榜或计数

    4、发布、订阅消息(消息通知)

    5、商品列表、评论列表等

    6、个人信息、社交网络、地理位置

    五种数据类型

    String

    key value,注意一个键值只能存储512MB。

    Set

    是string类型的无序集合,也不可重复

    List

    字符串列表,它按插入顺序排序

    Hash

    一个键值对的集合, 是一个string类型的field和value的映射表,适合用于存储对象

    ZSet

    是string类型的有序集合,也不可重复

    sorted set中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set 因此非常适合实现排名

    基础知识

    默认16个DB 通过select 切换 

    flushdb 清除当前DB 
    fulshall 清除全部DB
    
    keys * 查看所有k
    exists key 是否存在k
    getset key value 先get再set
    move key k数量
    expire key 秒数 设置k的过期时间
    ttl key 查看k的剩余时间
    append key value 追加字符串,不存在则set
    strlen key 获取长度
    set views 0 浏览量
    incr views 默认自增1
    decr views 默认自减1
    incrby views 步长
    decrby views 步长
    getrange key 0 -1 获取指定位置或全部字符串
    setrange key 0 -1 替换指定位置或全部字符串
    setex (set with expire) 设置过期时间
    setnx (set if not exist) 不存在在设置(在分布式锁中会常常使用!)
    mset k1 v1 k2 v2 k3 v3 同时设置多个值
    mget k1 k2 k3 同时获取多个值
    msetnx k1 v1 k4 v4 # msetnx 是一个原子性的操作,要么一起成功,要么一起失败!
    
    # 对象
    set user:1 {name:zhangsan,age:3} 设置一个user:1 对象 值为 json字符来保存一个对象!
    
    # 这里的key是一个巧妙的设计: user:{id}:{filed} 
    
    127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2
    OK
    127.0.0.1:6379> mget user:1:name user:1:age
    1) "zhangsan"
  • 相关阅读:
    Identity Server4学习系列三
    C# 多线程九之Timer类
    Identity Server4学习系列二之令牌(Token)的概念
    Identity Server4学习系列一
    C# 多线程八之并行Linq(ParallelEnumerable)
    使用Resourcehacker去除winrar的弹窗广告
    remote: Coding 提示: Authentication failed问题解决
    使用Python读取照片的GPS信息
    mongoose删除mongodb某个库的所有collection
    mysql数据库查询占用空间
  • 原文地址:https://www.cnblogs.com/alanchenjh/p/12915757.html
Copyright © 2020-2023  润新知