参考b站狂神说的视频
https://www.bilibili.com/video/BV1S54y1R7SB?p=36&share_source=copy_web
非关系型数据库:nosql数据库
非关系型数据库的优点
1。方便扩展(数据之间没有关系,很好扩展)
2。大数据高性能(nosql的缓存记录数)
3。数据类型是多样型的 (不需要事先设计数据库 随去随用)
高性能 高可用 高可扩
NOSQL的四大分类
K V键值对. ————->缓存 日志
美团:redis tait
阿里 百度:redis memcache
文档型数据库 —————>分布式文件系统
MongoDB(必须掌握)
基于分布式文件存储的数据库 C++编写,主要用来处理大量的文档
mongoDB是一个介于关系型数据库和非关系型数据库的中间的产品。MongoDB是非关系型数据库中功能最丰富 最像非关系型数据库的
ConthDB
列存储数据库—-》web应用 HBase
图关系数据库——-〉社交网络 Neo4j
2.Redis是什么
1.redis远程字典服务 由c语言编写,支持网络的,基于内存的可持久化 日志型,key value 数据库。支持多种语言的API
免费和开源。 结构化数据库。
作用:
内存存储 持久化 (内存中是断电即失)(持久化 rdb aof)
效率高 可以用于高速缓存
发布订阅系统(简单消息队列)
地图信息分析
计时器 计数器
特性
1.多样的数据类型
2.持久化
3.集群
4,事务
测试性能
Redis-benchmark 压力测试工具
测试 100个并发 100000请求
Refis-benchmark -h localhost -p 6379 -c 100 -n 100000
Redis 推荐在linux上搭建
3.Redis基础知识
Redis默认有16个数据库 默认使用的第0个
可以使用select进行切换数据库
eg:select 3 keys * 查看所有的key flushall 清空所有的数据库 flushdb 清空当前数据库
Redis 是单线程的
Redis是基于内存操作,CPU并不是redis的瓶颈,根据机器的内存和网络带宽
为什么单线程还这么快?
CPU>内存>硬盘
Redis是将所有的数据都存在内存中,对于内存系统来说,没有上下文切换效率就是最高的。
它可以用作数据库 缓存 消息中间件。
支持多种类型的数据结构 字符串 散列 列表 集合 有序集合与范围查询
redis的五大数据类型
Redis-Key
判断是否存在 exists key值 移除指定的key值 Move key值 数据库 设置过期时间,单位是秒 expire name 10 查看key的剩余时间 ttl key值 查看key的类型 type key值
string
set key值 value 赋值 get key值 获取值 APPEND key值 “hello” 拼接字符串 如果key不存在就新建 STRLEN key值 字符串长度 incr key值 对应的值加1 decr key值 对应的值减1 INCRBY key值 步长 可以设置指定增量 eg:INCRBY views 10 对应的值加10 获取范围 eg:set key1 “hello,zhangsan” GETRANGE key1 0 3 “hell” GETRANGE key1 0 -1 //查看全部字符串 “hello,zhangsan”
替换
set key2 abcdefg SETRANGE key2 1 xx //替换指定位置开始的字符串 get key2 ->axxdefg setex(set with expire) 设置过期时间 eg:setex key3 30 “hello” setnx(set if not exists) 不存在设置 eg:setnx mikes “redis”
批量获取和批量设置
批量设置 mset eg: mset key1 value1 key2 value2 key3 value3 批量获取 mget eg: mget key1 key2 key3 msetnx key1 value1 key4 value4 //msetnx是个原子性操作,一起成功 一起失败 对象 设置一个user对象 user:{id}:{filed} mset user:1:name zhangsan user:1:age 18 mget user:1:name user:1:age 1)”zhangsan” 2)”18”
先get后set
getset 先get后set getset db redis ->(nil) get db —>redis Getset db mongdb —->redis get db—>mongdb
string类型的应用:
计数器
统计数量
统计多单位的数量
对象缓存