java连接redis是数据库(redis在java项目中的使用)
程序员文章站
2023-11-30 13:52:46
一、配置文件详解俗话说的好呀:行家有木有!出手就知道啊!以前的学习只是为了让我们知道如何使用redis ,但是我们作为开发人员,要知其所以然,所以我们得从根本上理解,我们来将redis.conf文件仔...
一、配置文件详解
俗话说的好呀:行家有木有!出手就知道啊!以前的学习只是为了让我们知道如何使用redis ,但是我们作为开发人员,要知其所以然,所以我们得从根本上理解,我们来将redis.conf文件仔细的学习一下,提升自我!放飞自我! 在实际工作中:一些小小的配置,可以让你脱颖而出!
- 单位:redis配置对大小写不敏感!
注意这里:任何写法都可,不区分大小写。
units are case insensitive so 1gb 1gb 1gb are all the same.
- 包含:搭建redis集群时,可以使用includes包含其他配置文件
- 网络:
解释如下所示:
bind 127.0.0.1 # 绑定的ip
protected-mode yes # 保护模式
port 6379 # 端口设置
- 通用general
daemonize yes # 以守护进程的方式运行,默认是 no,我们需要自己开启为yes!
pidfile /var/run/redis_6379.pid # 如果以后台的方式运行,我们就需要指定一个 pid 文件!
# 日志
# specify the server verbosity level.
# this can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably) 生产环境
# warning (only very important / critical messages are logged)
loglevel notice
logfile "" # 日志的文件位置名
databases 16 # 数据库的数量,默认是 16 个数据库
always-show-logo yes # 是否总是显示logo
- 快照(rdb):持久化,在规定的时间内,执行了多少次操作则会持久化到文件 .rdb .aof文件
redis是内存数据库,如果没有持久化,那么数据断电即失!
# 如果900s内,如果至少有一个1 key进行了修改,我们及进行持久化操作
save 900 1
# 如果300s内,如果至少10 key进行了修改,我们及进行持久化操作
save 300 10
# 如果60s内,如果至少10000 key进行了修改,我们及进行持久化操作
save 60 10000
# 我们之后学习持久化,会自己定义这个测试!
- security 安全
可以在这里设置redis的密码,默认是没有密码的。 ①通过命令设置
127.0.0.1:6379> ping
pong
127.0.0.1:6379> config get requirepass #获取redis的密码
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456" #设置redis的密码为123456
ok
# ctrl+c 退出当前连接
[root@dyjcomputer bin]# redis-cli -p 6379 #重新连接
127.0.0.1:6379> ping #测试ping,失败,所有的命令都显示无权限
(error) noauth authentication required.
127.0.0.1:6379> set k1 v1 #失败,所有的命令都显示无权限
(error) noauth authentication required.
127.0.0.1:6379> auth 123456 #auth + 密码 登陆上去
ok
127.0.0.1:6379> ping #正常
pong
127.0.0.1:6379> config get requirepass #获取密码,正常
1) "requirepass"
2) "123456"
②通过修改配置文件设置,找到图示位置,添加密码
重启redis测试!
127.0.0.1:6379> ping
(error) noauth authentication required.
127.0.0.1:6379> auth 123456
ok
127.0.0.1:6379> ping
pong
- 限制clients
maxclients 10000 #设置能连接上redis的最大客户端的数量
maxmemory <bytes> #redis 配置最大的内存容量
maxmemory-policy noeviction #内存到达上限之后的处理策略
1、volatile-lru:只对设置了过期时间的key进行lru(默认值)
2、allkeys-lru : 删除lru算法的key
3、volatile-random:随机删除即将过期key
4、allkeys-random:随机删除
5、volatile-ttl : 删除即将过期的
6、noeviction : 永不过期,返回错误
- append only 模式 aof配置(持久化保存)
appendonly no #默认是不开启aof模式的,默认是使用rdb方式持久化的,在大部分所有的情况下,rdb完全够用!
appendfilename "appendonly.aof" #持久化的文件的名字
# appendfsync always # 每次修改都会 sync。消耗性能
appendfsync everysec # 每秒执行一次 sync,可能会丢失这1s的数据!
# appendfsync no #不执行 sync,这个时候操作系统自己同步数据,速度最快!
二、jedis操作redis
百度的概念性解答我就不贴了,简单来说,jedis是redis官方推荐的java连接开发工具! 虽然现在的springboot2.×版本已经将jedis换成了lettuce,但是我觉得还是有必要了解一下jedis的使用!
- 如何在java项目中整合jedis并且连接redis数据库?
①创建一个maven项目
空的即可~怎么创建我就不赘述了!
②导入jedis和fastjson依赖,耐心等待下载完成!
<!--导入jedis的包-->
<dependency>
<groupid>redis.clients</groupid>
<artifactid>jedis</artifactid>
<version>3.2.0</version>
</dependency>
<!--fastjson-->
<dependency>
<groupid>com.alibaba</groupid>
<artifactid>fastjson</artifactid>
<version>1.2.62</version>
</dependency>
③连接redis测试,此处为了方便测试,连接的是本地的redis服务,连接远程需要更改配置文件和关闭防火墙,以后会单独弄一篇文章来介绍这个!
// 1、 new jedis 对象即可
jedis jedis = new jedis("127.0.0.1",6379);
// jedis 所有的命令就是我们之前的所有指令
system.out.println(jedis.ping());
如图所示:
返回pong,证明连接成功!
④常用的api练习:
// 1、 new jedis 对象即可
jedis jedis = new jedis("127.0.0.1",6379);
jedis.flushdb();//清空当前库的所有数据
jedis.set("name","dingyongjun");
jedis.set("age","23");
jedis.set("high","173");
system.out.println("name:"+jedis.get("name")+"nage:"+jedis.get("age")+"nhigh"+jedis.get("high"));
如图所示:
jedis.lpush("list","1","2","3","4");
system.out.println("list: "+jedis.lrange("list",0,-1));
如图所示:
⑤总结:在jedis中连接使用redis,和redis控制台命令完全一致,我就不一个个命令再去重复写一遍了,后面如果有时间的话,我会把所有的命令给慢慢完善上来!
推荐阅读
-
java连接redis是数据库(redis在java项目中的使用)
-
java连接redis是数据库(redis在java项目中的使用)
-
Jedis如何使用(java操作redis数据库的工具)
-
在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解
-
Java中的使用及连接Redis数据库(附源码)
-
Java中使用Jedis连接Redis对List进行操作的常用命令
-
Java中使用Jedis连接Redis对Set进行操作的常用命令
-
Java中使用Jedis连接Redis对String进行操作的常用命令
-
Java中使用Jedis连接池连接Redis数据库流程
-
Java中使用Jedis连接Redis对Key进行操作的常用命令