Bota5ky

Redis笔记(四):Java集成和配置

Jedis

Jedis是Redis官方提供的Java客户端,用于在Java应用程序中连接、操作Redis,它提供了与Redis通信的API,简化了Java开发者与Redis的交互流程。

Jedis Github Readme:https://github.com/redis/jedis#getting-started

SpringBoot

在SpringBoot2.x之后,原来使用的jedis被替换成了lettcuce,原因:

Jedis:采用直连,多个线程操作不安全,需要使用Jedis pool来避免,会有线程阻塞的情况(BIO模式)

Lettuce:采用netty,实例可以在多个线程共享,不存在线程不安全的情况,可以减少线程数量(NIO模式)

Lettuce Doc:https://lettuce.io/core/release/reference/#_for_gradle_users

Redis.conf详解

查找redis.conf位置

redis-cli config get dir
find / -name redis.conf

Linux系统可以

systemctl status redis-server
  • unit 单位对大小写不敏感
  • bind 127.0.0.1 绑定IP
  • protected-mode yes 保护模式,docker启动需要关闭
  • port 6379 端口设置
  • daemonize yes 以守护进程的方式运行
  • pidfile /var/run/redis_6379.pid 如果以后台方式运行,需要指定pid进程文件
  • loglevel notice
  • logfile "" 日志的文件位置名
  • database 16 默认的数据库数量
  • always-show-logo yes 是否总是显示logo

快照:持久化,在规定的时间内,执行了多少次操作,则会持久化到文件.rdb,.aof

redis是内存数据库,如果没有持久化,那么断电即丢失!

save 900 1 #如果900秒,如果至少有一个key进行了修改,我们即进行持久化操作
save 300 10
save 60 10000
  • stop-writes-on-bgsave-error yes 如果持久化出错,是否还需要继续工作

  • rdbcompression yes 是否压缩rdb持久化文件,需要消耗cpu资源

  • rdbchecksum yes 保存时是否校验rdb文件

  • dir ./ 持久化rdb文件保存的目录

config get requirepass # 获取requirepass项配置
config set requirepass "123456" # 设置requirepass项配置
auth 123456 # 登录才能查看及修改以上配置内容
  • maxclients 10000 默认可连接的最大客户端数目

  • maxmemory redis配置最大内存

  • LRU least recently used

  • LFU least frequently used

  • maxmemory-policy noeviction 内存到达上限之后的处理策略:

    volatile-lru:只对设置了过期时间的key进行LRU算法进行删除
    allkeys-lru:对所有key执行LRU算法进行删除
    volatile-lfu:只对设置了过期时间的key进行LFU算法进行删除
    allkeys-lfu:对所有key执行LFU算法进行删除
    volatile-random:随机删除设置有过期时间的key
    allkeys-random:随机删除
    volatile-ttl:删除即将过期的
    noeviction:永不过期,返回错误
    
  • appendonly no 默认不开启aof模式,默认是使用rdb方式持久化的,大部分情况下,rdb完全够用

  • appendfilename "appendonly.aof" 持久化的文件名字

  • appendfsync everysec 每秒执行一次同步,always 每次修改都写入,速度较慢,no 让操作系统决定同步,速度最快

posted @ 2023-05-20 19:24  Bota5ky  阅读(86)  评论(0编辑  收藏  举报