Redis是目前最为主流的缓存技术之一,Redis基于内存操作从而拥有强大的性能,可以达到每秒10万次的请求,可以说是一款非常强大的缓存技术了。
本文分为三部分:
- 基础知识介绍
- 常用技术讲解与缓存机制
- 使用场景、缓存问题
基础知识介绍
NoSQL概述
什么是NoSQL?
NoSQL = Not Only SQL (不仅仅是SQL)
关系型数据库:表格 ,行 ,列
非关系型数据库:没有固定的查询语言,键值对存储,列存储,文档存储
随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区。
NoSQL 特点
1、方便扩展
2、大数据量高性能(Redis 一秒写8万次,读取11万)
3、数据类型是多样性的
NoSQL四大分类
KV键值对:如Redis主要是用于内容缓存,主要是为了处理大量数据高访问负载
文档型数据库:如MongoDBMongoDB 是一个基于分布式文件存储的数据库
列存储数据库:如HBase分布式文件系统,以列簇式存储,将同一列数据存储在一起
图关系数据库:如Neo4j他不是存图形,放的是关系,比如:朋友圈社交网络,广告推荐!
Redis简介
Redis 是什么?
Redis(Remote Dictionary Server ),即远程字典服务,它是一个开源的由ANSI C语言编写,性能优秀、支持网络、可持久化的Key-Value内存的NoSQL数据库!
Redis 能干嘛?
1、内存存储、持久化。
2、效率高,可以用于高速缓存
3、发布订阅系统
4、计时器、浏览量! 5、........
Redis好处
主要从“高性能”和“高并发”这两点来介绍。
把数据库数据存入缓存,请求直接从内存中读取不用经过数据库,减轻数据库压力并且提升性能。
常用技术讲解与缓存机制
Redis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求
String
- String:session、对象、小文件(存文件流字节数组,比磁盘IO快)?
- int:秒杀、限流、计数
- bitmap:
场景1.setbit和bitcount结合可以统计一年365天哪天有用户操作过,getbit可以获取某一天是否用户操作过
场景2.权限控制,比如每个权限对应一个bit,哪个用户有该权限,该位为1,没权限为0
list
替换java jvm中的集合,可以作为数