高并发基本概念
名词解决
高并发:多人同时访问同一个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的特点
安装配置
直接解决
微软
https://github.com/MicrosoftArchive/redis/releases
文件说明
Redis-server.exe 数据库主程序
Redis-cli.exe 命令行的管理工具
Redis.window.conf 主程序的配置文件(访问端口等参数)
运行(打开cmd)
1.先跳目录
Cd E:\nginx_tomcat_redis\redis-cluster\Redis-x64-3.2.100
执行这条命令 redis-server.exe redis.winwos.conf
redis 数据库的使用
数据类型
String 字符串
a) Set key value
b) Get key
c) Del key
Hash 哈希
a) hset key 属性 属性值
b) hmset key 属性1 属性值1 [属性2 属性值2]
c) hget key 属性名
d) hgetall key
list 列表
a) 可以左推送和右推送
b) 可以右取左推
c) Rpush key 属性名 属性值
d) Lpush key 属性名 属性值
e) Lrange key start stop (下标从0开始)
f) Lpop key
g) Rpop key
Set 集合
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 值2
Zrange key start stop (start从0开始 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文档
性能测试
cmd执行 redis-benchmark.exe –n 10000 –q
JAVA连接redis
Jedis (持久层框架)
Redis缓存
持久层的二级缓存
Spring boot 基于redis的缓存机制
Redis缓存使用
依赖包
配置文件
注解
@EnableCache 启动缓存
@Cacheable 执行了查询,缓存查询结果
@CachePut 执行了插入或修改,更新缓存数据
@CacheEvict 执行删除,清除缓存
Redis安装部署
核心概念
主从复制
达到高可用的目的
负载均衡
主从模式示意图
安装配置主从模式
原文:https://www.cnblogs.com/lin02/p/11485537.html