GaryLee's Blog
Redis 2023.11.13
为什么Lua脚本可以保证原子性?
一、什么是原子性?原子性这个概念在数据库中和在并发编程中是两种不同的概念: 数据库中的原子性:要么都执行,要么都不执行 并发编程中的原子性:操作不可拆分、不被中断 Lua脚本是属于并发编程中的原子性,可以保证原子性,但是不能保证要么都执
2023-11-13
Redis 2023.11.13
什么是Redis的数据分片?
一、什么是Redis的数据分片?Redis的数据分片(Sharding)指的是将数据集分为多个子集,分别存储在不同的Redis节点上,提高了Redis集群的性能和扩展性。 二、如何实现Redis的数据分片?Redis的数据分片实现一般是按照
2023-11-13
场景题 2023.11.13
如何保证高并发下的直播送礼能够快速完成?
一、背景在如今比较火热的直播行业中,随之而来的是数不胜数的送礼。那么直播行业流量这么大的前提下,送礼行为我们要怎么做到快速完成呢?既要快速处理快速返回,也要保证数据正常无误。 二、高并发下的挑战我们要处理高并发下的挑战,就需要从几个方面入手
2023-11-13
JVM 2023.11.12
Java中四种引用有什么区别?
一、Java中四种引用分别是什么?Java中四种引用分别是: 强引用:默认引用,使用后不会被垃圾回收器回收(如果内存不足,则直接报错OOM)。例子代码为String[] arr = new String[]{"a","b"}; 弱引用:如
2023-11-12
并发 2023.11.12
线程和进程有什么区别?
一、什么是线程和进程? 线程也叫做轻量级进程。多个线程可以在同一个进程中同时执行,并且共享进程的资源如内存空间、网络连接等 进程对应计算机中正在运行的一个程序实例 二、线程和进程有什么区别? 一个进程包含多个线程 进程之间互相独立,线程之
2023-11-12
Redis 2023.11.10
Redis集群中什么是脑裂问题?如何解决的?
一、什么是Redis集群?具体可参考文章《Redis集群》 二、什么是脑裂问题?脑裂通俗来说就是大脑裂开了,在Redis集群中指的是有多个集群子集,每个集群子集都有自己的大脑(即Leader节点),那么就会出现不同大脑之前的数据不一致问题。
2023-11-10
Redis 2023.11.08
Redis有哪几种常用的缓存读写策略?
一、Redis有哪几种常见的缓存读写策略?在Redis中,有3种常见的缓存读写策略,分别为: Cache Aside Pattern(旁路缓存模式):同时更新数据库和缓存 Read/Write Through Pattern(读写穿透):
2023-11-08
Redis 2023.11.08
Redis如何做性能优化?
一、Redis如何做性能优化?1、批量操作减少网络传输背景:如果我们一次要执行多条命令,如果是常规的set、get等命令,那么执行多少条命令就涉及多少次网络调用,所以如果我们把这些命令打包就会减少网络调用次数 批量操作减少网络传输有以下几种
2023-11-08
Redis 2023.11.07
Redis为什么单线程还这么快?为什么后面又引入多线程?
一、Redis为什么单线程还这么快?Redis为什么这么快?具体可参考文章《Redis为什么这么快?》 我们可能会有疑问:单线程不就只能监听单个连接了吗?为什么还能这么快? 事实上,Redis是通过IO多路复用来监听来自客户端的多个连接的(
2023-11-07
Redis 2023.11.07
Redis有哪几种数据类型?分别有什么应用场景?
一、Redis有哪几种数据类型?Redis常见的数据类型有以下几种: String(字符串):一般用于缓存JSON对象 List(列表):有序、可重复 Set(集合):无序、不重复 Hash(散列): Zset(有序集合):有序、不重复
2023-11-07
分布式 2023.11.06
什么是负载均衡?有哪些常见算法?
一、什么是负载均衡?背景:我们一般会将我们的服务做集群部署(多机器),用来应对高并发流量,但是我们的入口都是同一个(如www.baidu.com可能指向ip255.1.1.1,也可能指向ip255.2.2.2),具体如何将用户请求分发到集群
2023-11-06
Redis 2023.10.31
Redis除了做缓存,还能做什么?
一、Redis除了做缓存,还能做什么?Redis除了做缓存,还能做以下几种功能: 分布式锁:具体可参考文章《如何实现一个分布式锁?》 延迟队列:具体可参考文章《如何用Redis实现延迟队列?》 消息队列:Redis支持发布/订阅模式和St
2023-10-31
4 / 17