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

相关推荐
枫叶丹439 分钟前
【在Linux世界中追寻伟大的One Piece】五种IO模型和阻塞IO
java·运维·开发语言·网络·jvm·io
终末圆2 小时前
数据库连接池与Druid【后端 16】
java·开发语言·数据库·c++·mysql·算法·oracle
wending-Y3 小时前
一文速通calcite结合flink理解SQL从文本变成执行计划详细过程
java·sql·flink
golove6665 小时前
Spring Cloud集成Gateaway
java·spring·spring cloud
Lill_bin6 小时前
CAS机制:并发编程中的原子操作
java·服务器·开发语言·windows·算法·微服务
长安初雪6 小时前
RedisTemplate操作ZSet的API
redis
碎像6 小时前
EasyExcel 快速入门
java·spring boot·easyexcel
Damon小智6 小时前
SpringBoot权限认证-Sa-Token的使用与详解
java·spring boot·spring cloud·微服务·sa-token
祁思妙想6 小时前
《JavaEE进阶》----16.<Mybatis简介、操作步骤、相关配置>
java·java-ee·mybatis
程序猿大波6 小时前
基于Java、SpringBoot、Vue的加油站管理系统设计
java·vue.js·spring boot