zoukankan      html  css  js  c++  java
  • redis

    高并发基本概念

      名词解决

        高并发:多人同时访问同一个WEB应用程序

        高可用:在高并发的运行环境中,保证WEB应用程序正常运行

    需求

      在高并发的环境下面,要达到高可用的目标

    解决方案

      方案指的是解决高并发问题的一系列方法,必不局限于某一种(硬件层面、软件层面、思想层面)

    Redis数据库

      基于内存的,以key-value形式保存数据的数据库硬件层面

    Rabbitmq

      消息队列(时间换高可用)

    Spring cloud

      系统架构层面的解决方案

      微服务架构(去中心化的思想)(思想层面的解决方案)

    系统架构层面核心概念

      集群部署

      分布式部署

      微服务部署

    集群部署

      分布式部署(拆分概念)

    微服务部署

      软件即服务

      Spring cloud

        正在实现微服务思想的框架技术

    Redis数据库

      什么是redis

        Redis是完全开源免费的,遵守BSD协议,

        是一个高性key-value内存数据库(具备持久化的能力

      为什么会有redis

        高并发的必然产物

    谁在用

      Google、Qq、Alibaba

    宣传口号

      NOSQL

      NO SQL

      NOT ONLY SQL

    存储方式

      采用key-value的方式存储数据  类似集合框架中的map

    Redis的特点

    1. Redis支持数据的持久
    2. Redis不仅仅支持简单的key-value ,同时还提供 list set zset hash等数据结构
    3. Redis 支持数据备份master-slave(主从模式的数据备份)

    安装配置

      直接解决

    微软

      https://github.com/MicrosoftArchive/redis/releases

    文件说明

      Redis-server.exe 数据库主程序

      Redis-cli.exe 命令行的管理工具

      Redis.window.conf 主程序的配置文件(访问端口等参数

    运行(打开cmd)

      1.先跳目录

      Cd E: ginx_tomcat_redis edis-clusterRedis-x64-3.2.100

      执行这条命令 redis-server.exe redis.winwos.conf

    redis 数据库的使用 

       数据类型

       String 字符

    1. 最大 512m
    2. 类似java中的字符串
    3. 语法

        a) Set key value

        b) Get key

        c) Del key

       Hash 哈希

    1. 每个hash可以存储2^32-1键值对
    2. 类似java中的hashMap
    3. 语法

        a) hset key 属性 属性值

        b) hmset key 属性1 属性值1 [属性2 属性值2]

        c) hget key 属性名

        d) hgetall key

       list 列表

    1. 列表最多可存储2^32-1
    2. 类似LinkedList
    3. 语法

        a) 可以左推送和右推送

        b) 可以右取左推

        c) Rpush key 属性名 属性值

        d) Lpush key 属性名 属性值

        e) Lrange key start stop (下标从0开始)

        f) Lpop key

        g) Rpop key

       Set 集合

    1. 类似HashSet
    2. 重复的值会被忽略
    3. 语法

        a) sadd key  [2]

        b) smembers key 查看

        c) spop key

        d) srem key  删除

        e) sdiff key1 key2 返回两个集合不同的值(只包含第一个集合)

        f) sinter key1 key2 返回两个集合的交集(只包含第一个集合

       sorted-set 有序集合

       语法

        Zadd key 序号  序号2

        Zrange key start stop (start0开始 stop -1 获取到最后一个值)

        Zrange key start stop withscores (返回结果包含序号)

    注:值不能重复,序号可以重复,并且可以是小数

    特殊用法

      加减操作

        Incr  1

        Decr  1

        Incrby n

        Decrby n

    商品维度(喜欢数、评价数、浏览数)

      hset product:10001 like 4

      hset product:10001 comment 5

      hset product:10001 visitor 6

     

      hincrby product:10001 like 3

      hget product:10001 like

      hgetall product:10001

    用户维度(关注数、粉丝数、动态数、发帖数)

      hset user:1 follow 10

     

    存储社交关系

      有序集合

       Sorted-set

        zadd u:1:f 1 2

        Zadd u: 1:f 2 3

        Zadd u: 1:f 3 6

        Zadd u: 2:f 4 1

        Zadd u: 2:f 5 3

        Zadd u: 2:f 6 8

    zintersore 把一个或多个交集的比较结果保存到一个新的集合中

    zinterstore out:1:2 2 u:1:f u:2:f

    zrange out:1:2 0 -1

    api文档

    https://redis.io/commands

    http://redisdoc.com/ 

    http://doc.redisfans.com/

    性能测试

      cmd执行 redis-benchmark.exe  –n 10000 –q

    JAVA连接redis

      Jedis 持久层框架

      Redis缓存

        持久层的二级缓存

        Spring boot 基于redis的缓存机制

    Redis缓存使用

      依赖包

      配置文件

      注解

       @EnableCache 启动缓存

       @Cacheable 执行了查询,缓存查询结果

       @CachePut 执行了插入或修改,更新缓存数据

       @CacheEvict 执行删除,清除缓存

    Redis安装部署

      核心概念

      主从复制

      达到高可用的目的

      负载均衡

    主从模式示意图

    安装配置主从模式

    1. 修改redis端口
  • 相关阅读:
    软件工程结课作业
    十三次作业
    十二次作业
    十一次作业
    十次作业
    找回感觉的练习
    CSS背景样式和列表样式
    盒子模型案例应用
    display属性
    margin外边距属性
  • 原文地址:https://www.cnblogs.com/lin02/p/11485537.html
Copyright © 2011-2022 走看看