哈希环,池化思想,为什么Threadlocal适合放用户信息

配置文件

哈希环,池化思想,为什么Threadlocal适合放用户信息_第1张图片

这里是设置初始化连接数是1

最小连接数是1

最大连接数是15

也可以直接初始化连接数为15,这样就可以直接调用

哈希环(算法)

如果说对数据偏移量敏感的服务,哈希策略必须选这个;对数据敏感的,不能用取余做哈希

举例子:取余哈希

根据取余,将1存在第一个redis,将2存在第二个redis,将3存在第一个redis

哈希环,池化思想,为什么Threadlocal适合放用户信息_第2张图片

如果新增加一台redis主机,根据取余存储就变成了3存在第三台redis

哈希环,池化思想,为什么Threadlocal适合放用户信息_第3张图片

但是3之前的数据还存在第一台redis里,这就会导致3分到第三胎redis之后却找不到对应的数据,因为数据存在第一台redis里,为了解决这个问题所以才要使用哈希环

池化思想(典型的牺牲空间来换取时间)

数据库连接池,jedis连接池,线程池

刚开始先将连接初始化出来,用的时候不用创建了,直接拿来用就行了,因为创建是需要时间的

数据库初始化案例:

哈希环,池化思想,为什么Threadlocal适合放用户信息_第4张图片

现在是初始化1个最小1个最大15个,如果数据量大了之后把初始化设置为15个,那么这15个就不回收了,继续用,这就是池化思想

为什么说ThreadLOcal适合放用户信息,

使用场景,就是用于线程之间上下文传递参数

哈希环,池化思想,为什么Threadlocal适合放用户信息_第5张图片

这里LoginUserHolder是通过ThreadLOcal实例化出来的对象,相当于通过当前线程获取当前登录的用户名

你可能感兴趣的:(java,面试,并发编程,哈希算法,redis,java)