Redis基本使用

目录

Redis介绍

Redis的下载

[Windows 下安装与使用](#Windows 下安装与使用)

Redis常用的五种数据类型

字符串类型操作指令

哈希类型操作命令

列表操作指令

集合操作指令

有序集合指令

通用命令


Redis介绍

Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,通常用于缓存、消息队列、实时分析等场景。它具有非常高的性能,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。Redis 作为一个键值对存储系统,可以将数据存储在内存中,并提供高效的读写操作,特别适合用于需要高吞吐量和低延迟的应用场景。

一些Redis的核心特点包括:

高性能:Redis将数据存储在内存中,读取和写入速度非常快。

持久化:支持将内存中的数据持久化到磁盘中,支持RDB(快照)和AOF(追加文件)两种持久化方式。

丰富的数据结构:不仅支持基本的键值对,还支持更复杂的数据结构,如列表、集合、哈希、位图等。

原子操作:Redis对某些数据结构提供原子操作,例如对列表、集合等数据结构的操作可以保证并发访问时的正确性。

发布/订阅模式:支持消息发布与订阅机制,可以用于实时消息传递。

分布式支持:支持分布式部署和分片,能处理大量的数据和请求。

Redis通常作为缓存系统使用,可以显著提高应用的响应速度,减轻数据库的压力,提升整体性能。

Redis的下载

Windows 下安装与使用

下载地址: Releases · redis-windows/redis-windows · GitHub

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包

我们下载和解压缩到本地之后直接在,redis解压缩之后的文件夹的地址栏上面输入cmd,文件夹的内容如下,不要看错了

然后打开cmd之后键入redis-server.exe redis.windows.conf指令就能开启redis的服务端了,开启后如下

然后再在同样的目录下打开cmd运行客户端的窗口。注意此时服务端的cmd窗口不要关闭

在另外一个cmd里面键入redis-cli.exe -h 127.0.0.1 -p 6379指令打开客户端,

此时我们就能在客户端来使用里面的指令了

Redis常用的五种数据类型

Redis当中存储的是key-value结构的数据

其中key是字符串类型,value有五种常用的数据类型

  • 字符串 String

  • 哈希 hash

  • 列表 list

  • 集合 set

  • 有序集合 sorted set 或者叫 zset

里面的hash一般都是用来存储一个对象的,一个filed对应着一个value,hash里面可以有很多个向这样的key:value的形式的数据

而这个hash就指向的专门一个hash对象

列表是有顺序的,可以用来存储有顺序的数据,可以有重复的元素

集合:是不能有重复的元素的,类似于java中的hashset

有序集合:有顺序的,每一个元素都会关联一个分数,根据分数升序排序,没有重复元素

字符串类型操作指令

set key value

可以看见我们的mykey设置为abc并成功的访问到了

setex key seconds values

注意setex的作用是设置一个键值对但是这个键值对是有有效期的,过了这个时间就无法访问到了。其中我们设置的时候是先设置key再是秒(有效期)再是value

可以看见我们设置的是20秒的有效期,当过了这个时间之后就无法访问到了

setnx key value

我们上面所有的指令在设置之后都是可以通过相同的指令对同一个key来进行操作的,但是setnx就不行,他就像java里面的final关键字一样,只能赋初值,当我们设置成功之后他会返回1,但是后面我们想对其做修改的时候,他会返回0

哈希类型操作命令

Hash类型其实就像java中的对象,这里的key就是对象的名字,而filed就是属性的名字,而value就是属性名

我们在使用hdel的时候可以跟多个字段,删除多个

hash里面的键和值都是一个简单的字符串

hset key filed value 设置ker中对应的filed的值为value

这里设置,get,删除都要通过key filed的方式拿到对应的值,因为hash是相当于嵌套的结构

hkeys key 获取key中的所有的字段filed

hvals key 获取key中所有的值

  • 当你要给一个hash里面设置多个filed就重复执行上面的hset命令就行了

列表操作指令

在redis的列表就相当于一个队列,先进先出

lpush key value1 value2 将一个或者多个数据插入到头部,这里的L是指的是将数据push到左边也就是头部

在lrange 里面我们的头部是从0开始的,而最后一个元素我们就指定为-1

即lrange 0 -1 就是获取整个列表的元素

rpop 会删除队尾的元素,且会返回整个元素

集合操作指令

Redis set是string类型的无序集合(即里面的元素是String),集合里面的元素是不重复的

命令的开头的S就代表着set

scard key 获取元素的数量

sinsert key1 key2 。。。。 返回所给定的所有集合的交集,即共同元素

sunion key1 key2 .。。。返回所有给定的集合的并集

srem key m1 m2 删除集合中一个或者多个成员

有序集合指令

他是一个有序集合,每个元素都会关联一个double的分数,但是整个分数是自己设置的

zadd key score member score member向这个集合可插入多个元素

zrange key start stop withscores withscores是我们可以指定将每个元素对应的分数一并返回

zincrby key increment member 将指定元素分数加上增量,加增量但不是替换增量

通用命令

所有的类型都可以使用的命令

keys pattern 这里的pattern代表着一种匹配模式,例如*就是查看当前这个radies的所有的key

当我们使用keys pattern的时候还可以例如keys set* 就是查找所有的set

exists key就是检查key是否存在

del命令可以删除多个key

最后

本人的第十一篇博客,以此来记录我的后端java学习。如文章中有什么问题请指出,非常感谢!!!

相关推荐
用户3169353811831 天前
Java连接Redis
redis
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神2 天前
三、用户与权限管理
数据库·mysql
小小工匠3 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
麦聪聊数据3 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡3 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
ofoxcoding3 天前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai