Redis是一个Key Value存储系统,是非常著名的NoSQL数据库之一。
Redis常常作为系统的缓存Cache使用,在互联网行业应用十分广泛,是进入互联网行业Java攻城狮必备技能。
Redis特点
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供String,list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
- 性能极高–Redis能读的速度是110000次/s,写的速度是81000次/s。
- 原子–Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性–Redis还支持publish/subscribe,通知,设置key有效期等等特性。
Redis作用
可以减轻数据库压力,查询内存比查询数据库效率高。
Redis应用
token生成、session共享、分布式锁、自增id、验证码等。
比较重要的3个可执行文件
- redis-server:Redis服务器程序
- redis-cli:Redis客户端程序,它是一个命令行操作工具。也可以使用telnet根据其纯文本协议操作。
- redis-benchmark:Redis性能测试工具,测试Redis在你的系统及配置下的读写性能
Redis数据类型,以及每种数据类型的使用场景
1. String
这个其实没啥好说的,最常规的set/get操作,value可以是String也可以是数字。一般做一些复杂的计数功能的缓存。
2. hash
这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。博主在做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。
3. list
使用List的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。
4. set
因为set堆放的是一堆不重复值的集合。所以可以做全局去重的功能。为什么不用JVM自带的Set进行去重?因为我们的系统一般都是集群部署,使用JVM自带的Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。
另外,就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。
5. sorted set
sorted set多了一个权重参数score,集合中的元素能够按score进行排列。可以做排行榜应用,取TOP N操作。另外,参照另一篇《分布式之延时任务方案解析》,该文指出了sorted set可以用来做延时任务。最后一个应用就是可以做范围查找。
如何学习Redis?
深入学习Redis,可以观看动力节点的Redis视频教程学习,讲解全面详细,通过视频的学习可以了解NoSQL是什么,NoSQL和关系型数据库的对比优缺点。掌握Redis是什么、能干什么、如何用;掌握Redis在Windows和Linux下的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等技术点。
Redis视频教程
https://www.bilibili.com/video/BV1Uz4y1X72A
Redis教程配套资料下载
http://www.bjpowernode.com/?csdn
课程目录
•001.Redis视频教程:redis简介
•002.Redis视频教程:数据库应用发展历程
•003.Redis视频教程:redis是一种Nosql数据库
•004.Redis视频教程:redis数据库特点简介
•005.Redis视频教程:安装redis数据库
•006.Redis视频教程:回顾安装redis
•007.Redis视频教程:启动redis服务
•008.Redis视频教程:关闭redis服务
•009.Redis视频教程:redis客户端
•010.Redis视频教程:退出redis客户端
•011.Redis视频教程:redis的基本知识1
•012.Redis视频教程:redis的基本知识2
•013.Redis视频教程:redis的基本知识3
•014.Redis视频教程:redis的五种数据结构1
•015.Redis视频教程:redis的五种数据结构2
•016.Redis视频教程:redis常用指令介绍
•017.Redis视频教程:redis中关于key的操作命令1
•018.Redis视频教程:redis中关于key的操作命令2
•019.Redis视频教程:redis中关于key的操作命令3
•020.Redis视频教程:redis中关于字符串类型数据的操作命令1
•021.Redis视频教程:redis中关于字符串类型数据的操作命令2
•022.Redis视频教程:redis中关于列表类型数据的操作命令1
•023.Redis视频教程:redis中关于列表类型数据的操作命令2
•024.Redis视频教程:redis中关于集合类型数据的操作命令1
•025.Redis视频教程:redis中关于集合类型数据的操作命令2
•026.Redis视频教程:redis中关于集合类型数据的操作命令3
•027.Redis视频教程:redis中关于集合类型数据的操作命令4
•028.Redis视频教程:redis中关于哈希类型数据的操作命令1
•029.Redis视频教程:redis中关于哈希类型数据的操作命令2
•030.Redis视频教程:redis中关于哈希类型数据的操作命令3
•031.Redis视频教程:redis中关于有序集合类型数据的操作命令1
•032.Redis视频教程:redis中关于有序集合类型数据的操作命令2
•033.Redis视频教程:redis中关于有序集合类型数据的操作命令3
•034.Redis视频教程:回顾redis的配置文件
•035.Redis视频教程:redis的配置文件-常规配置1
•036.Redis视频教程:redis的配置文件-常规配置2
•037.Redis视频教程:redis的配置文件-安全配置
•038.Redis视频教程:redis的持久化-RDB策略
•039.Redis视频教程:redis的持久化-AOF策略
•040.Redis视频教程:redis的事务简介
•041.Redis视频教程:redis事务基本操作1
•042.Redis视频教程:redis事务基本操作2
•043.Redis视频教程:redis事务基本操作3
•044.Redis视频教程:redis事务小结
•045.Redis视频教程:redis消息的发布与订阅
•046.Redis视频教程:redis的主从复制-提供三台redis服务
•047.Redis视频教程:redis的主从复制-启动三台redis服务
•048.Redis视频教程:redis的主从复制-设置主从关系、全量复制、增量复制
•049.Redis视频教程:redis的主从复制-读写分离、主机宕机
•050.Redis视频教程:redis的主从复制-从机宕机
•051.Redis视频教程:redis的主从复制-主机宕机、从机上位
•052.Redis视频教程:redis的主从复制-主机恢复、天堂变地狱
•053.Redis视频教程:redis的哨兵模式
•054.Redis视频教程:Jedis的使用
•055.Redis视频教程:redis的客户端连接工具