首页 > 数据库 >Redis笔记(四):Java集成和配置

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

时间:2023-05-20 19:33:22浏览次数:57  
标签:Java redis Redis 笔记 key rdb 持久 yes

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

标签:Java,redis,Redis,笔记,key,rdb,持久,yes
From: https://www.cnblogs.com/Bota5ky/p/17416891.html

相关文章

  • java中JDK和JRE有什么区别?
    JavaDevelopmentKit(JDK)和JavaRuntimeEnvironment(JRE)是两个不同的Java发行版。JDK是Java开发者所必需的软件开发工具包,包含了Java编译器、Java虚拟机(JVM)、Java运行时环境(JRE)以及各种Java开发工具,它可以用来开发和编译Java应用程序。除了JRE所包含的内容外,JDK还包含开......
  • 【学习笔记】(8) 拉格朗日插值
    拉格朗日插值首先一个定理:\(n\)个点(横坐标不同)唯一确定一个最高\(n-1\)次的多项式。那么,\(n\)个点的点值\((x_i,y_i)\)可以唯一确定一个\(n−1\)次多项式(为了叙述方便,本文中所有“\(k\)次多项式”“\(k\)次函数”的最高次项系数可以为0)。拉格朗日插值就是用......
  • 初等数论学习笔记
    线性筛素数直接上代码。constintMAXN=100000008;boolnp[MAXN];vector<int>prm,pre;voidgg(constintN=100000000){ pre.resize(N+1); for(inti=2;i<=N;i++){ if(np[i]==false){ prm.push_back(i); pre[i]=i; } for(autoj:prm)if(i*j<=N){ int......
  • 【学习笔记】(1) 差分约束
    1.算法介绍差分约束系统是一种特殊的\(N\)元一次不等式组,它包含\(N\)个变量\(X_1\simX_N\)以及\(M\)个约束条件,每个约束条件是由两个其中的变量做差构成的,形如\(X_i-X_j\lec_k\),其中\(1\lei,j\leN,1\lek\leN\)并且\(c_k\)是常数(可以是非负数,也可以......
  • 学习Javaweb中遇到的数据回显显示问题
    问题描述:当点击修改按钮时,显示的内容如下:解决方案:加上isELIgnored="false"<%@pagecontentType="text/html;charset=UTF-8"language="java"isELIgnored="false"%>最终结果显示:......
  • 《程序员修炼之道--从小工到专家》阅读笔记01
    《程序员修炼之道–从小工到专家》是一本经典的软件开发实践指南书籍,被许多程序员视为进阶必读之书。以下是本人对该书第一章节的阅读笔记。第一章节题为:为什么需要修炼?显然,程序员和武林中的武功修炼者一样,都需要经过长期的学习、训练和实践,才能成为真正的专家。而与武术不同的是......
  • java引用类型传值
    引用类型参数的传递,调用方的变量,和接收方的参数变量,地址指向的是同一个对象。双方任意一方对这个对象的修改,都会影响对方myself:这样也不用像php加&,说变就跟着变,会不会很麻烦,出现一些隐匿的bugpublicclassImoocStudent{publicvoidreplaceFirstPlayer(String......
  • java 递归拼接树形结构代码
    1、json数据(目标)[{label:'一级1',children:[{label:'二级1-1',children:[{label:'三级1-1-1'}]}]},{label:'一级2'......
  • 用Java实现计算器的功能
    练习一1.设计一个类模拟一个计算器达到什么需求?加减乘除需要设计一个方法一个计算方法控制台输出首先请输入第一个数例如数字1 请输入符号 例如+ 请输入第二个数 例如2第二次数字3 请输入符号 - 请输入第二个数 2结果1程序解析:使用Scanner进......
  • Java云his住院业务模块常见问题及解决方案
    一:住院业务1.患者办理住院时分配了错误的病区怎么办? 操作员误操作将患者分配了错误的病区科室分为以下两种情况:(1)、患者刚刚入院,未分配床位、主治医师与管床护士:这种情况比较好处理,只需对应病区的医生或者护士在分配入住科室子模块待分配子页面找到错误病区的病人,点击转科按钮,......