Redis是非关系型的k,v型数据库
特点:
1、开源的、使用C编写,基于内存且支持持久化
2、支持数据类型丰富,字符串strings、散列hashes、列表lists、集合sets、有序集合sorted sets等
3、支持多种编程语言(C C++ Python Java PHP ...)
4、单进程单线程
功能:
1、持久化
将内存中的数据保存到磁盘中,保证数据安全,方便进行数据备份和恢复
2、过期键功能
为键设置一个过期时间,让它在指定时间内自动删除(节省内存空间)
例如:音乐播放器、日播放排名、过期自动删除
3、事务功能
弱事务性的数据库,只是具备简单的事务功能
4、主从复制
如何让redis保持高可用状态,官方提供主从搭建方案
5、sentinel哨兵
在搭配了基础的主从结构后,哨兵可做到自动故障转移
MySQL:关系型数据库,表格,基于磁盘,速度慢
MongoDB:键值对文档型数据库,值为类似JSON文档,数据结构相对单一
Redis解决了硬盘IO带来的性能瓶颈
应用场景:
1、缓存
作为缓存存储介质,此业务场景最为常见;查询优先走redis,没有则走mysql;可有效降低mysql查询压力
2、并发计数
由于redis本身是单进程单线程的,可以有效解决并发请求计数场景;例如微博点赞
3、排行榜
各大实时排行榜 - 如电商/游戏中的排行
4、生产者消费者模型
充当生产者消费者模型的中间层;生产者可将任务分发给redis,消费者从redis中获取任务
安装:sudo apt-get install redis-server(安装后,Ubuntu会将redis列为开机自动启动项)
服务端启动/停止/重启:sudo /etc/init.d/redis-server status | start | stop | restart
客户端连接:redis-cli -h IP地址 -p 6379 -a 密码