- 1.redis出现的问题?
- 2.redis缓存原理,能存多大数据?
- 数据库缓存:
- 3.redis怎么序列化?
- 4.redis怎么和spring集成?
- 5.你的项目中哪里用了redis?
- 6.redis的存储结构?
- 7.redis的数据结构?
- 8.Redis怎么实现和mysql数据库数据同步?
- 9.你了解Redis吗?
- 10.怎么从redis取值?
- 11.你的项目为什么选择redis?
- 12.你的项目redis用的是什么存储结构?
- 13.redis支持哪些数据类型?
- 14.redis可能出现的问题?
- 15.项目哪里用了Redis和MQ呢?
- 16.说一下你知道的redis命令。
- 17.MQ怎么返回数据的?
- 18.什么是Redis?
- 19.Redis的优势
- 20.脏读,幻读,不可重复读?
1.redis出现的问题?
- 缓存穿透:要访问的数据在数据库中不存在,因此也不会被添加到缓存中
- 解决:将不存在的数据也加到缓存中,设置一个较短的过期时间将一些不可能存在的数据提前过滤掉
- 缓存雪崩 :缓存由于某些原因整体失效了,可能是缓存服务器宕机,大量请求直接访问数据库
- 解决:设置互斥锁,控制访问数据库写缓存为单线程根据不同点设置不同的缓存过期时间,热点数据缓存时间长,冷门数据缓存时间短
- 缓存击穿:过于热点的数据,在缓存过期的瞬间,数据库会被过量访问,导致不可用
- 解决:可以设置缓存永不过期
2.redis缓存原理,能存多大数据?
数据库缓存:
sql语句时key值,查询结果resultSet是value,当同一个查询语句访问时(select * from t_product),只要曾经查询过,调用缓存直接返回resultSet,节省了数据库读取磁盘数据的时间。
持久层缓存:
减少了连接数据库的时间;减少了resultSet封装成对象的过程。
业务层和控制层的缓存:
减少调用层次。
描述缓存在业务层的逻辑:
查询商品信息
判断当前查询在缓存是否有数据
如果有数据,直接返回,当前请求结束;
如果没有数据,查询持久层数据库数据,获取数据存储再缓存一份,供后续访问使用;
缓存雪崩/缓存击穿
海量请求访问服务器,服务器的性能由缓存支撑,一旦一定范围的缓存数据未命中,请求的数据访问涌入数据库;承受不了压力造成宕机–重启–海量请求并未消失–宕机–重启,系统长时间不可用;这种情况就是缓存的雪崩。
3.redis怎么序列化?
4.redis怎么和spring集成?
5.你的项目中哪里用了redis?
6.redis的存储结构?
7.redis的数据结构?
8.Redis怎么实现和mysql数据库数据同步?
9.你了解Redis吗?
redis(remote dictionary server)是一款基于内存存储的分布式数据库,支持持久化操作和多种数据类型,因为基于内存存储所以运行速度非常快,redis还支持事务,事务中的命令会被序列化按照顺序执行,不会被其他客户端发送过来的命令所打断;
10.怎么从redis取值?
11.你的项目为什么选择redis?
12.你的项目redis用的是什么存储结构?
13.redis支持哪些数据类型?
14.redis可能出现的问题?
15.项目哪里用了Redis和MQ呢?
16.说一下你知道的redis命令。
17.MQ怎么返回数据的?
18.什么是Redis?
Redis 是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。 Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 Java中数据结构:String,数组,list,set map… Redis提供了很多的方法,可以用来存取各种数据结构的数据。
19.Redis的优势
1.数据保存在内存,存取速度快,并发能力强
2.它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set —有序集合)和hash(哈希类型)。
3.redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。
4.它提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。
5.Redis支持集群(主从同步、负载均衡)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
6.支持持久化,可以将数据保存在硬盘的文件中
7.支持订阅/发布(subscribe/publish)功能 QQ群
1、数据存放:存放到内存中,还能不定期持久化到磁盘。存取速度快,并发能力强,断电后数据不丢失。
2、支持Value类型更多。
3、多种客户端(语言 java php c# js)
4、支持集群来扩展空间 8G+8G+16G
5、开源(免费还有很多人维护)
20.脏读,幻读,不可重复读?
脏读(Drity Read):
某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack操作,则后一个事务所读取的数据就会是不正确的
幻读(Phantom Read):
在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的
不可重复读(Non-repeatable read):
在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据
路过记得点赞🙃🙃