现在很多码农都有接触到redis,但是在使用Redis的时候也会遇到一些bug一些坑,接下来就跟大家盘点一下。
复制积压缓冲区是个有限的环形缓冲区 当主节点把复制积压缓冲区写满后,会覆盖缓冲区中的旧命令数据。如果从节点还没有同步这些旧命令数据,就会造成主从节点间重新开始执行全量复制。Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。
Redis 是一个开源的缓存服务,如果没有设置密码,可能会导致重要数据被篡改或者泄露,所以在使用 Redis 时,要设置密码来保证数据的安全。缓存穿透是指查询数据库和缓存都无数据,因为数据库查询无数据,出于容错考虑,不会将结果保存到缓存中,因此每次请求都会去查询数据库,这种情况就叫做缓存穿透。
KEYS 可能是在 Redis 中学习的第一个批命令之一,但不要在生产环境中使用,如果只有少量key,这并不是什么大问题。当你有几十个key时,编写一个依赖于 KEYS 的应用程序是可以的,但是随着key的数量越来越多,这个操作需要的时间越来越长。KEYS 是一个同步命令,其它任何操作都将无法进行,整个Redis实例将阻塞。
正常的情况是一个线程使用一个Jedis连接,可以使用JedisPool管理Jedis连接,实现线程安全,避免出现这种情况。例如,下面代码就是两个线程共用了一个Jedis连接。