初识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的网站进行查询就可以了。

相关推荐
楠楠子呀3 分钟前
从零构建高性能 WhatsApp 链接生成器与重定向服务:架构与路由解析
redis·python·容器·架构·flink·散列表·flume
Dovis(誓平步青云)8 分钟前
牛奶不能减成负数:冰箱库存的筛选、去重与不可变更新
android·java·开发语言
SWAGGY..1 小时前
【C++初阶】:(15)模板进阶--从非类型参数到模板特化与分离编译
java·服务器·前端
肠畔码农1 小时前
深度解密 Redis 核心引擎:从 MULTI/EXEC 事务机制到 EVAL 脚本的原子性演进
数据库·redis·junit
楠楠子呀1 小时前
独立站聊天转化全链路:从二维码引流到数据复盘
java·javascript·数据仓库·python·c#·自动化·etl
yurenpai(27届找实习中)1 小时前
从零读懂AI智能客服(二):Java 多模块项目如何协作:Maven 依赖、Spring 注入与运行时装配
java·spring·maven
有来技术1 小时前
youlai-boot 实战:MinIO 停止维护,Docker 迁移 RustFS 完整记录
java·后端·docker
吴声子夜歌2 小时前
Java面试——设计模式(二)
java·设计模式·面试
JAVA面经实录9172 小时前
MySQL问题定位与性能优化完整知识体系
java·jvm·数据库·mysql·性能优化