目录
- 传送门
- 一、前言
- 二、NoSQL
- 1、ont only sql,特点:
- 2、NoSQL的四大分类:
- 三、Redis概念
- 四、五大数据类型:
传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
一、前言
Redis 的重要性其实不用多说,不管是面试还是平时项目使用,基本是最高的Nosql数据库了。
下面文章不定期更新:
Redis入门篇(精品)
Redis命令篇
Redis高级篇
Redis集群篇
Redis面试篇
Remote Dictionary Server 远程字典服务,C语言编写的,基于内存可持久化的kv数据库,免费开源的结构化数据库,支持多样数据库类型、持久化(虽然是内存存储但也可以持久化)、集群、事务、发布订阅系统、地图信息分析、计时器、高速缓存(Redis一秒写8万次,读取11万次)
二、NoSQL
1、ont only sql,特点:
1.方便扩展(数据之间没有关系,很好扩展)
2.大数据量高性能(Redis一秒写8万次,读取11万次)
3.数据类型是多样型的(不需要事先设计数据库)
传统的和nosql的对比区别
2、NoSQL的四大分类:
1.KV键值对:新浪Redis 美团Redis+Tair 阿里、百度Redis+memecache
2.文档型数据库:(bson格式和json一样,只是二进制)MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档,是最像关系数据库的
3.列存储数据库:(MySQL是行存储),HBase(大数据),分布式文件系统等
4.图形关系数据库:存的不是图片是关系,比如朋友圈社交网络、广告推荐 Neo4j,InfoGrid等
四大分类优缺点
未来概念图
三、Redis概念
Redis默认有16个数据库,默认使用的是第0个,以下为Linux下面的命令:
select 3 切换到第三个数据库
dbsize 查看使用量的大小
keys * 查看所有的key
flushdb 清空当前数据库的数据
flushall 清空所有的数据看的数据
Redis是单线程的,是基于内存操作的,CPU不是性能瓶颈,其瓶颈是内存和网络带宽,多线程会使CPU上下切换, 这个是个耗时的操作,而Redis是把所有数据都放到内存中的没有上下切换,使用单线程操作效率最高,所以就使用单线程
四、五大数据类型:
1.String 字符串
2.list 相当于链表也可以是栈和队列(看命令其实是双端队列),before node after,left和right都可以插入值,如果key不存在就创建新的链表;如果key存在就新增内容;如果移除了所有值就是空链表(也代表不存在);在两边插入或改动效率最高,中间元素相对来说效率低一点;
3.set不重复元素 ,SADD key member1 [member2]
4.Hash哈希,是一种key-map的格式,取值也是取两个key才能得到value这种
5.zset在set基础上增加了一个值,set k1 seq1 v1 ,seq1是排序
三种特殊类型:
1.geospatial地理位置:朋友的定位,附加的人,打车距离计算
2.Hyperloglog:基数(不重复的元素)统计算法,比如A={1,5} B={1},AB之间的基数就是5,由于占用内存小固定12kb,所以网页的uv(一个人访问一个网站多次值计算一次)统计时是首选,传统做法是Set集合保存用户id,数据量大的时候就耗费内存了,Hyperloglog有一定的容错率,不是100%准确,一般uv统计是可以忽略不计的,如果强制要求准确则只能用传统方式了。
3.Bitmaps位图,位储存,只有0和1两种状态,操作二进制来进行记录,比如打卡未打卡的,登录和未登录的等等