初识redis:学习Java客户端

Redis服务器在官网公开了使用的协议,叫做RESP。任何一个第三方都可以通过上述的协议,来实现出一个和redis服务器通信的客户端程序。

Java生态中,封装好了RESP协议,实现的redis客户端是有很多的,此处使用的是jedis(而且jedis提供的api和redis命令是高度一致的)。

目录

引入依赖

ssh端口转发

jedis通用命令

String类型

[mset mget](#mset mget)

[getrange setrange](#getrange setrange)

append

[incr decr](#incr decr)

Hash类型

[hset hget](#hset hget)

hexists

hdel

[hkeys kvals](#hkeys kvals)

[hmget hmset](#hmget hmset)

List类型

[lpush rpush lrange](#lpush rpush lrange)

[lpop rpop](#lpop rpop)

blpop

llen

Set类型

[sadd smembers](#sadd smembers)

sismember

scard

spop

sinter

sinterstore

Zset类型

[zadd zrange](#zadd zrange)

zcard

zrem

zscore

zrank


引入依赖

第一步就是在IDEA的xml文件中引入maven中的jedis依赖:

但是需要注意的是:在linux中,我们的linux云服务器把6379端口保护起来了,redis服务器使用的端口就是6379,也就是说我们访问不了在linux上的云服务器。

如果直接把6379端口开放,很容易就被入侵,于是就有了以下的几个办法:

  • 直接让Java程序在linux上运行
  • 配置ssh端口转发,把云服务器的redis端口映射到本地主机

我们重点讲第二种方式,ssh端口转发。

ssh端口转发

配置ssh端口转发,把云服务器的redis端口映射到本地主机,此时客户端的程序访问的127.0.0.1:8888,就相当于是访问linux服务器的6379端口

我们在此只进行简单的配置,后续就把云服务器的端口当成一个本地的端口使用即可。

连接完成以后,在自己电脑中可以使用netstat命令查看本地这里的8888端口有没有工作:

jedis通用命令

接下来会介绍一部分命令在代码中的操作,都是比较重要的命令~

在main中,使用Jedis客户端来创建一个连接池(JedisPool),用于连接到Redis服务器。

java 复制代码
JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");

String类型

mset mget

jedis的用法规则,和redis高度统一。此处我们使用List来接收jedis.mget返回的数组。

getrange setrange

append

incr decr

Hash类型

hset hget

要注意,此处的处理方式是先构造一个Map,把这个Map通过hset的方式存进去。

hexists

此处的hset是直接通过设置key、field、value的方式来添加元素的。

hdel

此处hdel是可以一次性删除多个元素。

HDEL 命令用于删除哈希表中的一个或多个字段(field),而不是直接删除值(value)。当一个字段被删除后,与该字段关联的值(value)也会随之被删除。

hkeys kvals

一个是获取所有的key,一个是获取所有的value。要注意这个操作十分危险,有可能造成卡顿。

hmget hmset

由于现在hset可以做到一次设置多个field和value,所以hmset几乎废弃了。

List类型

lpush rpush lrange

头插、尾插的结果正好相反。

lpop rpop

分别是从头删除和从尾删除,一次删除一个。

blpop

阻塞删除,当一有元素就立马执行删除。

llen

Set类型

sadd smembers

sismember

scard

获取集合中的元素个数。

spop

不写count参数的时候,随机删除一个元素

sinter

输出交集。

sinterstore

sinterstore是把输出放到额外的一个key中。

Zset类型

Zset是有序集合。

zadd zrange

zadd的用法比较复杂,添加元素的时候,既要添加元素又要添加分数。

zcard

获取有序集合的元素个数。

zrem

删除指定元素。

"Tuple"(元组)通常指的是一个不可变序列,它可以包含不同类型的元素,并且元素的顺序是固定的。

zscore

查询指定元素的分数。

zrank

查询元素的下标。

不难发现,jedis和redis使用几乎是一样的。这些使用方法都不需要去背,只需要在redis的网站进行查询就可以了。

相关推荐
朦胧之10 小时前
AI 编程-老项目改造篇
java·前端·后端
程序猿大帅14 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪15 小时前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly15 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨16 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜16 小时前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
SimonKing1 天前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
用户298698530141 天前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端
小bo波2 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
nanxun8863 天前
记一次诡异的 Docker 容器"串包"故障排查
java