Redis(远程字典服务)是一种 Key-value键值对形式的
NoSQL(非关系型数据库)数据库,一类开源的内存数据结构存储器,它是单线程的,将数据存储在内存中,速度很快
优点:
1超高的性能
2完美的文档
3.简单易懂的源码
4.丰富的客户端库支持
一类常用的开源中间件
NoSQL:monoDB,redis,没有表和表之间的关联,甚至没有表的概念,意味着每条数据的大小都可能不一样,
相比而言 MySQL数据库是将文件存储到磁盘当中,
2012年 服务端支持Lua脚本
2015年 添加了Redis的分布式实现了Redis集群
2016年 添加模块系统
2018年 发布流数据类型
2020年 支持多线程
1.缓存:
Redis提供键过期功能,提供了灵活的键淘汰策略
2.排行榜
Redis提供了有序集合数据类构能实现各种复杂的排行榜应用
3.计数器
Redis提供的incr命令来实现计数器功能,内存操作,性能较好
4.社交网络
Redis提供哈希,集合等数据结构能很方便地实现点赞,踩,共同好友等社交基本功能
5.消息系统
消息队列是大型网站中必用的中间件:ActiveMQ,RabbitMQ,kafka,主要用于业务解耦,流量削峰以及异步处理实时性低的业务。Redis提供了发布/订阅及阻塞队列的功能,能实现一个简单的消息队列系统,当然这里不能和专业的消息中间件相比
6.分布式会话
集群模式下,应用不多的情况下一般使用容器自带的session复制功能,当在应用增多相对复杂的系统中,一般会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务和内存数据库管理----单点登录(SSO)
7 分布式锁
分布式技术带来了对同一资源的并发访问的挑战,全局ID,减库存,秒杀等并发量不大都场景可以用乐观锁和悲观锁来解决,但并发量高的场景下用数据库锁大大影响性能,可以利用Redis的setnx功能来编写分布式的锁,如果设置返回1说明获取锁成功,否则失败,实际应用中由更多的细节考虑
1.版本说明:
版本号为奇数:非稳定版本,为偶数:稳定版本
Redis是C语言开发的,所有的版本都是基于linux,
安装在/usr/local目录下面
在bin目录下面
redis-server->启动Redis服务
redis-cli->Redis命令行客户端
redis-sentinel ->启动Redis Sentinal(本质是一个Redis服务)
redis-check-rdb->Redis RDB持久化文件检测和修复工具
redis-check-aof->Redis AOF持久化文件检测和修复工具
redis->benchmark->Redis基准测试工具
Redis架构分为客户端和服务端
1.启动
1.前端启动模式(不推荐)
直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是在Redis的旧版中ssh命令窗口关闭则redis-server程序结束,最新版的Redis并不会因为ssh的连接的关闭而关闭,但是还是会占用ssh连接
2.守护进程模式(推荐)
以守护进程模式启动的话需要redis.conf配置文件。在配置文件中设置Redis的启动模式。从Redis源码目录redis-5.0.8中复制redis.conf文件到、usr/local/redis/bin目录下,
关闭
kill -9 端口
redis-cli shutdown -a passwd
./redis-cli -h 127.0.0.1 -p 6379 -a passwd
可视化管理工具–Redis Desktop Manager
如果你的Redis服务部署在云主机上,一定记得在控制台打开6379端口才能远程连接
Redis被攻击时:
127.0.0.1:6379>keys *
1)“backup3”
2)“backup3”
3)“backup3”
4)“backup3”