Bootstrap

面试知识储备-redis和redission

1.redis的使用

引入依赖,自动注解redistemplate即可使用,

默认的redistemplate存入到redis中是字符流的形式,需要配置redistemplate,

如果不想配置,可以使用stringRedistemplate 可以使用string类型,但是对象需要我们手动序列化,可以用fastjson

2.redis代替session进行登录验证(待手动实现

seesion:用户发送手机验证码,存入session,用户进行验证,检查用户密码(或验证码)是否存在,不存在则新建,匹配正确后保存用户到session中

redis:用户发送手机验证码,存入redis(手机号作为key),用户进行验证,若正确则新建token(随机字符串)到redis,将token返回给前端,设置过期时间为30分钟,同时在拦截器更新过期时间

3.redis分布式锁

在集群模式下,多个jvm下会存在多个锁监视器,因此无法解决共享资源的互斥问题,因此使用redis来实现分布式锁

set lock thread1 nx ex 100 

定义一个锁的接口和实现类

为了防止不同jvm含有相同的线程名称,使用uuid来检查释放锁是否一致

4.redission(待手动实现)

在redis下实现分布式锁虽然可以但是仍存在一些问题,不可重入、不可重试、超时释放、主从一致性问题,因此使用基于redis的redission组件,它是一个分布式工具集合

实现

1.引入pom依赖

2.使用配置类配置redission客户端

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;