本系列是Redis的入门系列第一部分的内容:主要介绍了NoSql和Redis,以及Redis的应用场景和Redis如何在Windows上安装以及配置
文章目录
Redis
系列文章
NoSql和Redis介绍
什么是NoSql
- NoSql:not-Only Sql(不仅仅是SQL)泛指非关系型数据库
- 关系型数据库:数据结构是一种有行有列的数据库
- NoSql数据库是为了解决高并发,高可用,高扩展性、大数据存储问题而产生的
- 作为关系型数据库的良好补充,不能替代关系型数据库
什么是Redis
- 用C语言开发的一个开源的高性能键值对(key-value)内存数据库
- 提供五种数据类型:字符串类型、散列类型、列表类型、集合类型、有序类型
- 是一种NoSql数据库
Redis为什么快
Redis采用的是基于内存的,单进程单线程模型的KV数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)
完全基于内存,绝大多数的请求是纯粹的内存操作,非常迅速。它的数据存放在内存中,类似于HashMap
数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的
采用单线程,避免了不必要的上下文切换和竞争,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁和释放锁的操作,没有因为可以出现的死锁而导致的性能消耗
使用多路I/O复用模型,非阻塞IO
它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM机制,因为一般的系统调用系统的函数的话,会浪费一定的时间去移动和请求。
NoSql数据库分类
键值(key-value)存储数据库
- Redis、Tokyo Cabinet/Tyrant、Voldemort、Berkeley Db等
- 典型应用:内存缓存、主要用于处理大量数据的高访问负载
- 数据模型:一系列键值对
- 优势:快速查询
- 劣势:存储的数据缺少结构化
列存储数据库
- Hbase、Riak、Cassandra
- 典型应用:分布式的文件系统
- 数据模型:以列簇式存储,将同一列的数据存放在一起
- 优势:查找迅速、可扩展性强、更容易进行分布式扩展
- 劣势:功能性相对局限
文档性数据库
- MongoDB、CouchDB
- 典型应用:web应用(与key-value类似、value是结构化的)
- 数据模型:一系列键值对
- 优势:数据结构要求不严格
- 劣势:
图形数据库
- Neo4J、InfoGrid、Infinite、Graph
- 典型应用:社交网络
- 数据模型:图结构
- 优势:利用图结构相关算法
- 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案
Redis的应用场景
- 内存数据库(登录信息、购物车信息、用户浏览记录)
- 缓存服务器(商品数据、广告数据)最多使用
- 解决分布式集群框架中的Session分离问题(Session共享)
- 任务队列(秒杀、抢购、12306)
- 支持发布订阅的消息模式
- 应用排行榜
- 网站访问统计
- 数据过期处理(精确到毫秒)
Redis安装以及配置
Windows
- 下载路径:下载路径
- 安装:
一路next即可
端口号:
- 设置密码:修改配置文件
默认是没有密码的。
配置文件:
redis.windows.conf:
redis.windows-service.conf:
- 启动服务
- 使用Redis
- 启动服务
Redis命令说明
redis-server :启动redis服务
redis-cli :进入redis命令客户端
redis-benchmark: 性能测试的工具
redis-check-aof : aof文件进行检查的工具
redis-check-dump : rdb文件进行检查的工具
redis-sentinel : 启动哨兵监控服务
发布订阅
我们可以开启两个客户端来实现一下Redis的发布订阅功能
-
A客户端订阅频道(rediszhonghu)
-
- subscribe rediszhonghu
-
B客户端发布内容
-
- publish rediszhonghu “hello , zhonghu”
A客户端即会自动收到内容,如下图所示