苍穹外买Day05

Redis简介

Redis是一个基于内存的key-value结构数据库

为啥有了数据库还要用Redis,因为Redis基于内存存储,读写性能高 ,那我们直接用Redis存储放弃mysql不行吗? 当然不,Redis是基于内存存储的,内存是有限的,所有Redis适合存储热点数据

Redis存储的是key-value结构的数据,其中key是字符串类型,value有5中常用的数据类型

字符串 string 普通字符串,Redis中最简单的数据结构

哈希 hash 也叫散列,类似于Java中的HashMap结构

列表 list 按照插入顺序排序,可以重复元素,类似于Java中的LinkedList

集合 set 无序集合,没有重复元素,类似于Java中的HashSet

有序集合 sorted set/zset 集合中每个元素关联一个分数,根据分数升序排序,没有重复元素

Redis字符串类型常用命令: 在Redis和sql一样并不区分大小写

SET key value 设置指定key的值

GET key 获取指定key的值

SETEX key seconds value 设置指定key的值,并将key的过期时间设为seconds 秒

SETNX key value 只有在key不存在时设置key的值

Redis hash 是一个string类型的field 和value的映射表,hash特别适合用于存储对象,常用命令

HSET key field value 将哈希表key中的字段field 的值为value

HGET key field 获取存储在哈希表中指定字段的值

HDEL key field 删除存储在哈希表中的指定字段

HKEYS key 获取哈希表中所有字段

HVALS key 获取哈希表所有值

Redis 列表是最简单的字符串列表,按照插入顺序排序,常用命令:

LPUSH key value1 [value2] 将一个或多个值插入到列表头部

LRANGE key start stop 获取列表指定范围内的元素

RPOP key 移除并获取列表的最后一个元素

LLEN key获取列表长度

Redis set是string类型的无序集合,集合成员是唯一的,集合中不能出现重复的数据,常用命令

SADD key member1[member2] 向集合添加一个或多个成员

SMEMBERS key 返回集合中的所有成员

SCARD key 获取集合的成员数

SINTER key1 [key2] 返回给定所有集合的交集

SUNION key1 [key2] 返回所有给定集合的并集

SREM key member1 [member2] 删除集合中一个或多个成员

Redis有序集合时string类型元素的集合,且不允许有重复成员,每个元素都会关联一个double类型

的分数

ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员

ZRANGE key start stop[WITHSCORES]通过索引区间返回有序集合中指定区间内的成员

ZINCRBY key increment member 有序集合中对指定成员的分数加上增量increment

ZREM key member[member...] 移除有序集合中的一个或多个成员

Redis的通用命令是不分数据类型的,都可以使用的命令:

KEYS pattern 查找所有符合给定模式的key

EXISTS key 检查给定key是否存在

TYPE key 返回key所储存的值得类型

DEL key 该命令用于在key存在是删除key

建立与Redis的连接

xml文件(引入依赖)

yml文件

先建立RedisTemplate对象,然后建立连接。

那么什么是序列化对象,我们发现左边不是乱码,而右边是乱码,就是因为key的序列化对象

不过这是展示的错误,并不是数据的错误,调用的时候数据依旧是对的(另外,序列化器不同,展示的也有所不同)

接下来就是Redis各种数据类型操作在Java中的实现

  1. String类型在Java中的应用

String中setex和setnx在java里面有分别对应着 set(这里和第一个set的参数不一样)和setIfAbsent

2.Hash类型在Java中的应用

hset对应put ,hget- get hkeys -keys hvals-values hdel-delete

3.List类型在Java中应用

lpush 多插和单插分别对应 leftPushAll 和leftPush lrange对应的range

size对应的size

4.无序集合在Java中的应用

sadd-add smembers-members scard-size sinter-intersect sunion-union srem-remove()

5.有序集合在Java中的应用

zadd-add zrange-range zincrby-incrementScore zrem-remove

常用Redis命令在Java中的应用

keys-keys exist-hasKey type-type del-delete

相关推荐
咘噜biu5 小时前
Java 安全的打印对象数据到日志
java·json·日志·脱敏
曹牧5 小时前
Eclipse 中 SVN 操作指南
java·svn·eclipse
阿里嘎多学长5 小时前
2025-12-15 GitHub 热点项目精选
开发语言·程序员·github·代码托管
填满你的记忆5 小时前
Gemini使用教程
java·后端·ai编程
一只乔哇噻5 小时前
java后端工程师+AI大模型开发进修ing(研一版‖day63)
java·开发语言·人工智能·python·语言模型
风月歌5 小时前
小程序项目之使命召唤游戏助手源代码(java+vue+小程序+mysql)
java·mysql·小程序·毕业设计·源码
小白学大数据5 小时前
从爬取到分析:使用 Pandas 处理头条问答数据
开发语言·爬虫·python·pandas
爱吃大芒果5 小时前
Flutter 状态管理全家桶:Provider、Bloc、GetX 实战对比
开发语言·前端·javascript·flutter·华为·ecmascript
_OP_CHEN5 小时前
【从零开始的Qt开发指南】(十)Qt 常用控件之输入类控件全攻略:7 大控件从入门到实战,覆盖所有输入场景
开发语言·c++·qt·前端开发·qt常用控件·gui图形化界面·qt输入类控件