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 让操作系统决定同步,速度最快