Nosql简介
NoSQL:
即Not-OnlySQL(泛指非关系型的数据库),作为关系型数据库的补充。
作用:
应用对于海量用户和海量数据前提下的数据处理问题。
特征:
- 可扩容,可伸缩
- 大数据量下得高性能
- 灵活得数据模型
- 高可用
常见Nosql数据库:
- Redis
- memcache
- HBase
- MongoDB
解决方案(电商场景)
Redis简介
概念:
Redis(REmote DIctinary Server)即远程字典服务,是用C语言开发的一个开源的高性能键值对(key-value)数据库。
基础知识:
- redis默认有16个数据库
- 默认使用第0个数据库,可以使用select进行切换数据库
- 单线程。基于内存操作,CPU不是redis性能瓶颈,redis的瓶颈是根据机器内存和网络带宽,既然可以使用单线程实现,就使用单线程了
- 核心: redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程( CPU上下文会切换:耗时的操作! ! ! ) , 对于内存系统来说,如果没有上下文切换效率就是最高的!
特征:
- 数据间没有必然的关联关系
- 内存存储
- 内部采用单线程机制进行工作
- 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。
- 多数据类型支持:
- string(字符串类型)
- list(列表类型)
- hash(散列类型)
- set(集合类型)
- sorted_set(有序集合类型)
- 持久化支持。可以进行数据灾难恢复,比如说:突然断电、设备瘫痪…
Redis的应用
- 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等提高访问量信息等。
- 任务队列,如秒杀、抢购、购票等
- 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
- 时效性信息控制,如验证码控制、投票控制、计时器、计数器(浏览量)等
- 分布式数据共享,如分布式集群构架中的session分离
- 消息队列
- 分布式锁
Redis的基本操作
命令行模式工具使用
- 功能性命令
- redis-server.exe 开启服务
- Mac版终端:redis-server /usr/local/etc/redis.conf
- redis-cli.exe 提供操作
- Mac版终端:在新的一个终端窗口输入:redis-cli开启客服端
- Mac版终端:退出redis server服务 Ctrl+c
- redis-check-aof.exe 持久化操作
- redis-benchmark.exe 性能测试
- 清除屏幕信息
- 帮助信息查阅
- 退出指令
信息添加
- 功能:设置key,value数据
- 命令
set key value
- 范例
set name itheima
信息查询
- 功能:根据key查询对应的value,如果不存在,返回空(null)
- 命令
get key
- 范例
get name
推出客户端命令行模式
- 功能:推出客户端
- 命令
quit exit < ESC>(慎用)