今天电话面试被问及Redis与memcache的区别,当时一脸懵逼。面试结束之后查看笔记,发现我竟然了解过。。。果然知识点还是要梳理啊,好可惜
Redis与memcache最主要的区别
- memcache只能存放在硬盘中,而Redis可以存储在磁盘。也就是说Redis可以持久化,而memcache不行
- Redis的数据类型要比memcache丰富
Redis知识点梳理
Redis数据类型:
- String
- List
- Hash
- Set
- Sorted Set
Redis中的数据类型很简单,就是数据类型的字面意思,简单易懂
Redis的优势:
- 数据类型相对丰富,且简单易懂
- 支持持久化的同时,支持key过期策略
- 读写速度快,可以处理十万、百万级并发
- Redis所有操作都支持原子性
Redis应用场景:
- 数据库冷热分离,因为其高并发特性,可以把查询次数多的热数据存放到Redis中
- 分布式项目中解决session共享,幂等性(全局ID)
Redis事务
Redis支持事务
multi ---开启事务
exec --- 执行事务
discard --- 取消事务
watch --- 监视某个key值,若在事务执行前改变,则打断事务
UNwatch --- 取消监视
Redis持久化机制
1. rdb存储(默认开启)
二进制文件方式,不是实时存储。
存储10个key以上,开始持久化机制。
体积小。
:在规定时间内,达到一定存储次数才做持久化,断开连接自动备份。
kill -9 和 断电除外。
2. aof存储
aof存储是实时存储
通过日志方式存储
特点:文件大、体积大、效率不高
Redis具有发布订阅功能(类似于消息中间件)
发布频道(生产者)
创建频道(消费者)
订阅频道
SUBSCRIBE --- 发布频道
UNSUBSCRIBE --- 退订
PUBLISH 频道 信息 --- 发送并订阅
Redis正从复制:传送门
Redis哨兵机制:传送门
Redis实现分布式锁(转载):https://baijiahao.baidu.com/s?id=1662302711136291337&wfr=spider&for=pc
Redis实现session共享(转载):https://blog.csdn.net/qq_40718168/article/details/89676482