redis 常用api的理解和使用

预备

redis全局命令

查看所有的键: keys *
键总数:dbsize
检查键是否存在:exists key
删除键:del key
键过期:expire key second,其中ttl 命令会返回键的剩余时间
键的数据结构类型:type key

数据结构和内部编码

type命令实际返回的是当前键的数据结构类型,他们分别是string,hash,list,set,zset但是这只是redis对外的数据结构.
实际上每种数据结构都有着自己的底层内部编码实现,而且是多种实现,这样redis会在合适的场景下选择合适的内部编码.

redis这样的实现有两种好处,

  • 第一:可以改进内部编码,而对外的数据结构和命令没有影响,这样一旦开发出更加优秀的内部编码,无需改动外部数据结构和命令
  • 多种内部编码实现可以在不同场景下发挥各自的优势

单线程架构

redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务
redis客户端和服务端的调用会经历如下三个阶段:发送命令,执行命令,返回命令在这里插入图片描述因为redis是单线程来处理命令的,所以一条命令从客户端到达服务端不会立即被执行,所有命令都会进入到一个队列中,然后逐个被执行,所以客户端命令执行的顺序是不确定的,但是可以确定不会有两条命令同时被执行

为什么单线程访问还能够这么快:

  • 纯内存访问
  • 非阻塞IO
  • 单线程避免了线程切换和竞态产生的开销
    单线程机制会带来很多的好处,但是对于每个命令的执行时间是有要求的,如果某个命令的执行时间过长,会造成其他命令的阻塞,所有redis是面向快速执行的场景设计的数据库

字符串

字符串类型是redis最基础的数据结构,首先键都是字符串类型的,而且其他几种数据结构都是在字符串类型的基础上构建的,所以字符串类型能够为其他四种数据结构的学习奠定基础,字符串类型的值可以是字符串,数字甚至是二进制文件,但是值最大不能超过512兆

常用命令

  • 设置值:
    set key value [ex|px] [nx|xx]
    ex 为键设置秒级过期时间
    px 为键设置毫秒级过期时间
    nx 键必须不存在才能够设置成功,用于添加
    xx 键必须存在,才能够设置成功,用于更新
    setnx用于实现分布式锁:多个客户端同时执行setnx只有一个能够实现成功
  • 获取值:
    get key
  • 批量设置值
    mset key value [key value … ]
  • 批量获取值
    mget key [key …]
    如果有些键不存在,那么他的值为空,结果是按照传入键的顺序返回
    批量操作可以有效的提高开发效率,加入没有mget这样的命令,要执行n次get需要消耗大量的网络和硬件开销
    学会使用批量操作,有助于提高业务执行效率,但是注意的是每次的批量操作所发送的命令数量是是有节制的,如果数量过多会造成redis阻塞或者网络阻塞
  • 计数<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java 使用 Redis 需要引入 Redis 的 Java 客户端库,最常用的是 Jedis 和 Lettuce。 Jedis 是 Redis 的 Java 客户端之一,由于其简单易用,广受 Java 开发者的喜爱。你可以在 Maven 中引入 Jedis: ```xml <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.5.2</version> </dependency> ``` Lettuce 则是另一个广泛使用Redis 的 Java 客户端,相比 Jedis,Lettuce 支持异步操作,性能更高。你可以在 Maven 中引入 Lettuce: ```xml <dependency> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> <version>6.0.2.RELEASE</version> </dependency> ``` 无论选择哪一个客户端,使用 Redis 都需要引入相应的依赖,并按照官方文档进行配置和使用。 ### 回答2: Java使用Redis主要依赖于Jedis库。Jedis是一个Java语言编写的高性能、面向对象的Redis客户端库,它提供了一系列的API,用于与Redis服务器进行交互。 Jedis库提供了对Redis的基本操作的支持,包括连接到Redis服务器、执行命令、获取和设置值、批量处理等。通过Jedis库,我们可以通过代码与Redis进行交互,如向Redis中存储数据、获取数据、删除数据等操作。 Jedis库的优点之一是其易于使用。开发人员可以很轻松地通过简单的API来连接到Redis服务器,并执行各种操作,无需过多的配置和学习成本。此外,Jedis还支持事务和管道机制,可以提高Redis的操作效率。 此外,Java也可以使用Lettuce库来与Redis进行交互。Lettuce是一个基于Netty的开源Redis客户端,具有异步、反应式的特性。相比于Jedis,Lettuce在高并发场景下具有更好的性能表现。Lettuce提供了丰富的功能和API,可以充分利用Redis的特性,包括发布订阅、事务、批量处理等。 总结而言,在Java中使用Redis,我们主要依赖于Jedis和Lettuce这两个库。Jedis是一个简单易用的Redis客户端库,适用于大多数场景。而Lettuce是一个高性能的Redis客户端库,适用于高并发场景和对性能要求较高的应用。开发人员可以根据自己的需求选择适合的库来与Redis进行交互。 ### 回答3: Java使用Redis可以通过引入相关的依赖库来实现。在Java中,Redis常用Java客户端有Jedis和Lettuce两种选择。 1. Jedis:Jedis是一个简单且易于使用的Java Redis客户端库,它是基于Java的操作RedisAPI。它提供了一组易于理解使用的接口来连接和操作Redis数据库。使用Jedis进行Redis操作非常方便,可以直接在Java代码中使用Jedis提供的方法来实现与Redis的交互。 2. Lettuce:Lettuce是一个高级的Redis客户端库,它提供了更多的功能和性能优化。与Jedis相比,Lettuce使用了异步、非阻塞的IO模型,可以更好地支持并发访问和高性能。Lettuce还提供了更多的Redis特性支持,例如Redis Sentinel、Redis Cluster和Redis Pub/Sub等。 无论是使用Jedis还是Lettuce,首先需要在项目中添加对应的依赖库。具体的引入方式可以通过Maven或Gradle等构建工具来实现。接着,可以在Java代码中创建Redis连接对象,连接到Redis数据库,并使用提供的方法来进行数据的存储、读取、删除等操作。 总的来说,Java使用Redis可以通过引入Jedis或Lettuce等相关的库,使用其中提供的方法来连接和操作Redis数据库。这些库可以为Java程序员提供方便、高效和灵活的方式来使用Redis,并实现各种Redis的功能和特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值