一、redis是什么
- redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。
- redis的官网地址:https://redis.io
- NoSQL:not only sql,泛指非关系型数据库 Redis/MongoDB/Hbase Hadoop
- 为了解决高并发,高可扩展,高可用,大数据存储问题而产生的数据库解决方案,就是NoSQL数据库
- 关系型数据库:MySQL、oracle、SqlServer
二、redis数据库出现的背景
- 随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。
-1.在互联网+大数据时代来临之前,企业的一些内部信息管理系统,一个单个数据库实例就能满足系统的需求
单数据库实例
2.随着系统访问用户的增多,数据量的增大,单个数据库实例已经满足不了系统的读取需求
缓存(memcache)+单数据库实例
3.缓存可以缓解系统的读取压力,但是数据量的写入压力持续增大,
缓存+主从数据库+读写分离
4.数据量再次增大,读写分离以后,主数据库的写库压力出现瓶颈、
缓存+主从数据库集群+读写分离+分库分表
5.互联网+大数据时代来临,关系型数据库不能很好的存取一些并发性高,实时性高的,并且数据格式不固定的数据。
nosql+主从数据库集群+读写分离+分库分表
三、Redis 发展历程
- Redis 的发展大概经过了以下几个过程:
• 2009 年 5 月发布 Redis 初始版本;
• 2012 年发布 Redis 2.6,重构了大量的核心代码,去掉了所有和集群相关的代码;
• 2013 年 11 月发布 Redis 2.8,增加了部分主从复制功能;
• 2015 年 4 月发布 Redis 3.0,增加了集群功能;
• 2017 年 7 月发布 Redis 4.0 ,优化了复制功能和新增了混合持久化;
• 2018 年 10 月发布 Redis 5.0,增加了 Stream 数据类型;
• 2020 年 3-5 月计划发布 Redis 6.0 稳定版。
四、Redis应用场景
- 缓存(数据查询,短连接,新闻内容,商品内容等等)
- 分布式集群架构中的session分离
- 聊天室的在线好友列表
- 任务队列(秒杀,抢购,12306等等)
- 应用排行榜
- 网站访问统计
- 数据过期处理(可以精确到毫秒)
五、Utunbu安装redis服务
详见:用Ubuntu的官方软件包安装redis服务及配置参数
六、Redis数据库简单使用
命令 | 说明 |
DBSIZE | 查看当前数据库的key数量 |
keys * | 查看key的内容 |
flushdb | 清空当前数据库的key的数量 |
flushall | 清空所有库的key(慎用) |
exists key | 判断key是否存在 |
select n | 选择第n个数据库 |
七、redis 五大数据类型
- redis-string:字符串
- string是redis最基本的类型,一个key对应一个value
- string可以包含任何数据,最大不能超过512M
- redis-list:列表
- redis-Hash:哈希
- redis-set(不重复的):集合
- redis-Zset:有序集合
八、redis-string常用操作
详见:《redis string类型数据常用操作》
九、redis-list常用操作
详见:《redis list类型数据常用操作》
十、redis-hash常用操作
十一、redis-set和Zset常用操作
参考资料: