面试篇八:NO-SQL非关系型数据库Redis

Redis是一种key-value的格式存储数据的NO-SQL非关系型数据库。

  • Redis的数据类型

五种数据类型:String字符类型、Hash散列类型、List列表类型、Set集合类型、SortedSet或者叫zset有序集合类型。

  • Redis常用命令

查看链接https://www.cnblogs.com/scorpio-cat/p/12777248.html

  • Redis数据淘汰策略

(1)volatile-lru:从已设置过期时间的数据集中选最近最少使用的数据淘汰。

(2)volatile-ttl:从已设置过期时间的数据集中选要过期的数据淘汰。

(3)volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。

(4)allkeys-lru:从数据集中挑选最近最少使用的数据淘汰。

(5)allkeys-random:从数据集中任意选择数据淘汰。

(6)no-enviction:禁止驱逐数据。

在在redis.conf中配置

maxmemory-policy volatile-lru
  • 怎么保证缓存中的数据和数据库中的数据库的一致性?

延时双删策略:就是先删除缓存key,再更新数据库数据;等待不会后,再尝试删除一下缓存key,防止整个过程中,出现还没更新完成,其他线程查询了改key并缓存了旧值的情况。

  • Redis消息模式

(1)使用List类型的lpush和rpop实现消息队列。

rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试,但是在消费者下线的情况下,生产的消息会丢失,得使用专业的消息队列如rabbitmq等。

(2)如果要实现生产一次消费多次,需要使用pub/sub发布订阅者模式,可以实现1:N的消息队列;要先订阅后发布消息,不然前期发布的数据接收不到。

订阅消息 subscibe my-channel 

发布消息 publish my-channel "我是发布者,发布了一个消息,请查收" 

  • Redis在Spring项目中怎么使用

查看链接https://www.cnblogs.com/RunForLove/p/4903734.html

(1)pom.xml中配置依赖spring-data-redis、jedis。

(2)app-context-cache.xml,其中配置了ip地址,端口号,以及数据库的访问密码。

(3)使用RedisTemplate类操作,不同数据类型分别对应不同方法String->opsForValue(),List->opsForList(),Hash->opsForHash(),Zset->opsForZSet()。

面试篇八:NO-SQL非关系型数据库Redis

上一篇:web前端学习中,最容易出错的基础知识


下一篇:mysql的连接配置时区问题