Redis

有关Redis

相关问题:
1.Redis了解过吗?怎么用的?(2021.3月底网易面经)
2.项目中哪些地方用到了Redis?

	存放session。Sessionid作为key,用户信息作为value。因为部署多个实例,需要一份公共的session。
	序列号
	主页的热门商品,最近成交记录放在缓存里面。热点数据,提高响应速度。
	使用jedis作为java连接客户端
	查询数据,然后放在缓存中。

3.Jedis简介AND使用:
那jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。如果用spring的话,可以看看spring 封装的 redis Spring Data Redis
简单使用:
在这里插入图片描述
4.Redis为什么被设计成单线程?
答案一:

在回答这几个问题之前先问几个问题
1 多线程的本质是什么?
多线程的本质其实还是单线程,因为在任一个时间点其实只有一个线程在抛,
只不过CPU切换线程速度太快,让我们感觉是多个线程在一起跑,其实所有的指令还是一个接着一个的跑的。

2 多线程一定比单线程快么?
答案肯定是否定的了
线程快,是因为其降低了不必要的耗时,耗时其实主要集中在两大块 磁盘IO 线程切换

磁盘IO耗时远远大于线程切换耗时

多线程有助于降低磁盘IO耗时

单线程没有线程切换耗时

日常开发涉及磁盘IO因此使用多线程,磁盘IO的耗时危害已经将线程切换的危害忽略了,因此会觉得多线程快.

Redis中没有磁盘IO,使用单线程没有CPU切换耗时,也不用考虑同步锁问题,因此速度更快

答案二:

(1)官方给的解释是因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
(2)Redis有丰富的数据类型,在单线程的情况下,就不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。
(3)采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多线程导致的切换而消耗 CPU。

5.Redis是单线程,为什么单线程模型的 Redis 性能不减?

(1)	单线程不代表一定就慢,单线程有一个最大好处就是节省线程切换的开销,更不用考虑并发读写带来的复杂操作场景,这就大大节省了线程间切换的时间了。
(2)	单线程模型避免了多线程的频繁上下文切换,这也避免了多线程可能产生的竞争问题。
(3)	Reids 是基于内存的读写操作,内存肯定比传统磁盘IO数据库快。
(4)	Reids 核心是基于非阻塞的IO多路复用机制。

项目中关于Redis的问题:

	redis的hashmap和java的有什么区别
	redis的zset数据结构是什么
	为什么用redis做会话跟踪
	怎么用redis做会话跟踪的
	如果没有部署到同一个域名下,怎么做会话跟踪(用单点登录)
	会话跟踪意义是什么,具体是怎么做的。怎么失效的,怎么拿到数据的
	流水号生成器怎么保证唯一订单号的?是严格的递增还是趋势递增?
	redis的订单流水号用完了怎么办?(动态增加位数)
	redis挂了,流水号怎么办?
	怎么做的订单号
	如果部署多个redis,怎么保证生成的序列号唯一
	redis怎么实现分布式的cookie
	i.	cookie和session的区别
	ii.	服务端如何识别用户的(tomcat的那一套)

	redis预减缓存,减成负数怎么办

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值