当前位置: 首页 > news >正文

Redis的基础知识·

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

  • 基于内存存储 读写性能高
  • 适合存储热点数据(热点商品 咨询 新闻)        

开启Redis
首先输入命令

redis-server.exe redis.windows.conf

然后重新打开命令行窗口        
输入命令

redis-cli.exe

输入密码

redis-cli.exe -a 123456

五种常用的数据类型

  • 字符串String :普通字符串 redis中最常用的数据类型
  • 哈希表 hash:也叫散列
  • 列表 list :按照插入的顺序进行排序 可以有重复的数据类似于LinkedList
  • 集合 set:无序集合 没有重复元素 类似于HashSetji
  • 有序集合 sorted set/zset :集合中每个元素关联一个分数(score) 根据分数升序排列 没有重复元素

Redis中的常见操作字符串的命令

  • SET key value 设置指定的key的值
  • GET key 获取指定key的值
  • SETEX key seconds value 设置指定key的值 并将key的过去时间设置为seconds秒
  • SETNX key value 只有在key不存在时才会设置key的值

Redis中常见的hash操作命令
        Redis hash是一个string类型的filed和value的映射表 hash特别适合存储对象 常用命令
                HSET key field value 将哈希表key中的字段field的值设置为value
                HGET key field 获取存储在哈希表中的指定字段的值
                HDEL key field 删除存储在哈希表中的指定字段
                HKEYS key 获取哈希表中的所有字段
                HVALS key 获取哈希表中的所有值

 Redis中常见的列表操作命令
        Redis列表是简单的字符串列表 按照插入顺序排序 常用命令
        LPUSH key value1[value2] 将一个或者多个值插入到列表的头部(每个元素用空格隔开)
        LRANGE key start stop 获取列表指定范围内的元素
        RPOP key 移除并获取列表的最后一个元素
        LLEN key 获取列表长度

Redis中常见的集合常见操作命令
        Redis set 是string类型的无序集合 集合成员是唯一的,集合中不能出现重复的数据 常用命令
        SADD key member1 [member2] 向集合中添加一个或者多个成员
        SMEMBERS key 返回集合中的所有成员
        SCARD key 获取集合的成员数
        SINTER key1 [key2]  返回给定所有集合的交集
        SUNION key1 [key2] 返回所有给定集合的并集
        SREM key member1 [member2]删除集合中一个或者多个成员          

Redis中常见的有序集合操作命令
        Redis有序集合是string类型元素的集合 且不允许有重复的成员 每个元素都会关联一个double类型的分数,常用命令
        ZADD key score1 member1 [score2 member2] 
        ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合中指定区间内的成员
        ZINCRBY key increment member 有序集合中指定的成员分数加上增量increment
        ZREM key member1[member2] 移除有序集合中的一个或者多个成员

Redis通用命令(部分数据类型)
        KEYS pattern 查找所有符合给定模式(pattern)的key
        EXISTS key 检查给定key是否存在
        TYPE key 返回key所存储的值的类型
        DEL key 该命令用于key存在时删除key

Java中操作Redis
1.导入Redis的依赖(以起步依赖为例)

<!--导入redis相关依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

2.配置Redis的配置源

  #配置spring——redisredis:host: ${sky.redis.host}password: ${sky.redis.password}port: ${sky.redis.port}database: ${sky.redis.database}

3.书写Redis的配置类来操作Redis

package com.sky.config;import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;@Configuration
@Slf4j
public class RedisConfiguration {@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){log.info("开始创建RedisTemplate对象...");RedisTemplate redisTemplate = new RedisTemplate();//设置Redis的连接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);//设置Redis的序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;}
}

java代码操作Redis中String类型的数

@Testpublic void testString() {//set get setex setnxredisTemplate.opsForValue().set("city", "beijing");String s = (String) redisTemplate.opsForValue().get("city");System.out.println(s);redisTemplate.opsForValue().set("code", "123", 60, TimeUnit.MINUTES);redisTemplate.opsForValue().setIfAbsent("lock","1") ;redisTemplate.opsForValue().setIfAbsent("lock","2") ;}

Java代码中操作hash类型的数据

@Testpublic void testHash() {//hset hget hdel hkeys hvalsHashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put("100", "name", "xiaoming");hashOperations.put("100", "age", 20);String name = (String) hashOperations.get("100", "name");System.out.println(name);Set keys = hashOperations.keys("100");System.out.println(keys);List values = hashOperations.values("100");System.out.println(values);hashOperations.delete("100", "name") ;}

 

相关文章:

Redis的基础知识·

Redis是一个基于内存的key-value的结构数据库 基于内存存储 读写性能高适合存储热点数据&#xff08;热点商品 咨询 新闻&#xff09; 开启Redis 首先输入命令 redis-server.exe redis.windows.conf 然后重新打开命令行窗口 输入命令 redis-cli.exe 输入密码 …...

qt QProxyStyle详解

1、概述 QProxyStyle是Qt框架中QStyle类的一个子类&#xff0c;它提供了一种代理机制&#xff0c;允许开发者在不直接修改现有样式&#xff08;QStyle&#xff09;实现的情况下&#xff0c;对样式行为进行定制或扩展。通过继承QProxyStyle&#xff0c;开发者可以重写其虚方法&…...

AWS CLI 操作指南

AWS CLI 操作指南 世间本来就存在许多乐境&#xff0c;只是现代人为世间所累而未能予以关注&#xff0c;也就失去了许多体验乐境的机会。比如&#xff0c;忙里偷闲看云&#xff0c;以悠闲的心看悠闲的云&#xff0c;便是一种极妙的乐境。 本文将介绍如何配置 AWS CLI&#xff0…...

海盗王用golang重写的AccountServer功能

自从用golang重写了海盗王的网关gateserver以来&#xff0c;一直想把accountserver也重写了&#xff0c;但是一直没有进行。 趁上次刚写好那个golang版的更新器&#xff0c;还有些熟悉&#xff0c;于是把原来AccountServer的C代码重写读了个大概。它原版的写得太过于复杂&#…...

如何保证spring boot应用程序的安全性?

保证Spring Boot应用程序的安全性是至关重要的&#xff0c;以下是小编为大家列举的一些关键措施和最佳实践&#xff1a; 文章目录 1. 使用Spring Security2. 安全配置3. 数据加密4. 凭证管理5. 输入验证6. 异常处理7. 定期更新依赖8. 日志监控9. 审计日志10. 安全培训 1. 使用S…...

力扣 岛屿数量-200

岛屿数量-200 class Solution {//深度优先搜索 dfs public:int vis[300][300] {0};//用于标记的数组&#xff0c;标记是否遍历过int cnt 0;//岛屿计数//上下左右的移动方向数组int dx[4]{-1,1,0,0};int dy[4]{0,0,-1,1};//深度优先搜索void dfs(vector<vector<char>…...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【三】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

十二、正则表达式、元字符、替换修饰符、手势和对话框插件、字符串截取

1. 正则表达式 1.1 基本使用 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&g…...

【信息系统项目管理师】第3章:信息系统治理 考点梳理

文章目录 3.1 IT 治理3.1.1 IT治理基础3.1.2 IT治理体系3.1.3 IT治理任务3.1.4 IT治理方法与标准 3.2 IT 审计3.2.1 IT审计基础3.2.2 审计方法与技术3.2.3 审计流程3.2.4 审计内容 3.1 IT 治理 IT治理起到重要的统筹、评估、指导和监督作用。 信息技术审计(IT审计)作为与IT治…...

实现对图片或者视频增加隐藏水印和提取水印

好久好久没有写博客了&#xff0c;最近看见一个很有意思的文章&#xff1a;小心你的电脑被窃听&#xff0c;就是说在一些公司&#xff0c;截图都会存在水印&#xff0c;方便溯源&#xff0c;然后出于技术的好奇&#xff0c;我在github上搜了一下&#xff0c;还真有相关的github…...

uniapp配置全局消息提醒

1.H5使用根标签插入dom的方式实现。 2.app端使用plus.nativeObj.View的方式绘制实现 H5端app端 H5端 创建组件orderAlert.vue <template><div class"view"><div class"content" v-if"visible"><div class"message&q…...

卸载snap docker一直卡住:Save data of snap “docker“ in automatic snapshot set #3

在卸载 Snap 安装的 Docker 时卡住&#xff0c;通常是因为 Snap 在执行卸载时会先尝试保存一些快照&#xff08;自动或手动创建的&#xff09;&#xff0c;并且该过程可能因某些原因而卡住。为了解决这个问题&#xff0c;你可以按照以下步骤强制删除 Snap 安装的 Docker&#x…...

python学习——字典元素的访问和遍历

在Python中&#xff0c;访问和遍历字典元素的方法如下&#xff1a; 文章目录 访问字典元素1. 使用键来访问值2. 使用 get() 方法 遍历字典元素1. 遍历字典的键2. 遍历字典的值3. 遍历字典的键和值4. 使用列表推导式来创建新的列表 实操 访问字典元素 1. 使用键来访问值 # 创…...

数据结构基础之《(9)—归并排序》

一、什么是归并排序 1、整体是递归&#xff0c;左边排好序右边排好序merge让整体有序 2、让其整体有序的过程里用了排外序方法 3、利用master公式来求解时间复杂度 4、当然可以用非递归实现 二、归并排序说明 1、首先有一个f函数 void f(arr, L, R) 说明&#xff1a;在arr上…...

【深度学习】各种卷积—卷积、反卷积、空洞卷积、可分离卷积、分组卷积

在全连接神经网络中&#xff0c;每个神经元都和上一层的所有神经元彼此连接&#xff0c;这会导致网络的参数量非常大&#xff0c;难以实现复杂数据的处理。为了改善这种情况&#xff0c;卷积神经网络应运而生。 一、卷积 在信号处理中&#xff0c;卷积被定义为一个函数经过翻转…...

远程视频验证如何改变商业安全

如今&#xff0c;商业企业面临着无数的安全挑战。尽管企业的形态和规模各不相同——从餐厅、店面和办公楼到工业地产和购物中心——但诸如入室盗窃、盗窃、破坏和人身攻击等威胁让安全主管时刻保持警惕。 虽然传统的监控摄像头网络帮助组织扩大了其态势感知能力&#xff0c;但…...

电脑启动需要经历哪些过程?

传统BIOS启动流程 1. BIOS BIOS 启动&#xff0c;BIOS程序是烧进主板自带的ROM里的&#xff0c;所以无硬盘也可以启动。BIOS先进行自检&#xff0c;检查内存、显卡、磁盘等关键设备是否存在功能异常&#xff0c;会有蜂鸣器汇报错误&#xff0c;无错误自检飞快结束。 硬件自检…...

纯Go语言开发人脸检测、瞳孔/眼睛定位与面部特征检测插件-助力GoFly快速开发框架

前言​ 开发纯go插件的原因是因为目前 Go 生态系统中几乎所有现有的人脸检测解决方案都是纯粹绑定到一些 C/C 库&#xff0c;如 ​​OpenCV​​ 或 ​​​dlib​​​&#xff0c;但通过 ​​​cgo​​​ 调用 C 程序会引入巨大的延迟&#xff0c;并在性能方面产生显著的权衡。…...

postman使用正则表达式提取数据实战篇!

之前篇章中postman多接口关联使用的是通过JSON提取器的方式进行提取。 除了JSON提取器提取数据外还可通过另一种方式——正则表达式来提取数据。 1、使用正则表达式提取器实现接口关联&#xff0c;match匹配 正则匹配表达式将需要提取的字段key:value都放入表达式中&#xff…...

ipmitool使用详解(三)-解决各种dell、hp服务器无法ipmitool连接问题

报错 [root@localhost ~]# ipmitool -H 10.1.2.41 -I lan -U admin -P "password123" lan print 1 Get Session Challenge command failed Error: Unable to establish LAN session Error: Unable to establish IPMI v1.5 / RMCP session [root@localhost ~]# ipmit…...

告别英文界面:RedHat 6.3 桌面环境汉化原理与手动配置详解

从底层机制到实战&#xff1a;RedHat 6.3 桌面环境深度汉化指南 第一次在终端里看到满屏英文报错时&#xff0c;我盯着那个"Permission denied"愣了半天——明明昨天刚装好的系统&#xff0c;怎么连个中文提示都没有&#xff1f;这种经历恐怕是很多国内Linux用户的共…...

Flutter 轻量存储方案介绍、区别、对比和使用场景

在 Flutter 项目中&#xff0c;本地存储通常可以分为几类&#xff1a; 第一类是轻量 Key-Value 存储&#xff0c;例如 shared_preferences、get_storage、mmkv&#xff0c;适合保存开关、配置、登录状态等简单数据。 第二类是安全存储&#xff0c;例如 flutter_secure_storage&…...

若依框架实战:参数验证异常处理(手机号码格式验证案例)

一、前言在后端开发中&#xff0c;参数校验是保证接口健壮性的第一道防线。若依&#xff08;Ruoyi&#xff09;框架作为主流的 Java 后台管理系统框架&#xff0c;内置了完善的参数验证与全局异常处理机制。本文将以用户管理模块的手机号码格式验证为例&#xff0c;从触发验证、…...

S2C如何以FPGA原型验证方案破解中国芯片设计团队的验证痛点

1. 从EDA巨头东迁&#xff0c;看一个被忽视的蓝海市场最近业内有个不大不小的新闻&#xff0c;Altium这家知名的电子设计自动化&#xff08;EDA&#xff09;公司把总部搬到了中国。这事儿引起了不少讨论&#xff0c;但说实话&#xff0c;它既不是第一个这么干的&#xff0c;也未…...

《深入浅出通信原理》连载101-105

连载101&#xff1a;正弦信号的傅立叶变换连载102&#xff1a;直流信号的傅立叶变换连载103&#xff1a;复指数信号傅立叶变换的另外一种求法连载104&#xff1a;非周期信号的傅立叶变换连载105&#xff1a;傅立叶变换的对称性&#xff08;一&#xff09;...

Agent:它不是更聪明的大模型,而是让大模型持续推进任务的“大脑+身体”系统!

本文深入探讨了Agent与大模型的关系&#xff0c;强调Agent并非模型本身&#xff0c;而是一套围绕模型组织的运行机制。文章详细解析了Agent的核心机制&#xff0c;包括状态管理、控制循环和工具调用&#xff0c;并阐述了System Prompt、AGENTS.md、Skill和Tool等概念在Agent系统…...

Linux桌面美化:pixie-cursors鼠标指针主题安装与定制指南

1. 项目概述&#xff1a;一个为Linux桌面注入灵魂的鼠标指针主题如果你和我一样&#xff0c;是一个长期在Linux桌面环境下工作的开发者或爱好者&#xff0c;那么对于系统美化的追求&#xff0c;可能从未停止过。从窗口管理器到终端配色&#xff0c;从图标包到壁纸&#xff0c;每…...

Windows安全组件深度解析与优化:2025专业版系统性能调优完整指南

Windows安全组件深度解析与优化&#xff1a;2025专业版系统性能调优完整指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_m…...

Cadence Allegro 17.2 PCB设计避坑指南:从焊盘制作到封装绘制的完整流程

Cadence Allegro 17.2 PCB设计避坑指南&#xff1a;从焊盘制作到封装绘制的完整流程 刚接触Cadence Allegro 17.2的硬件工程师&#xff0c;往往会在焊盘制作和封装绘制环节踩不少坑。这些看似基础的操作&#xff0c;一旦参数设置不当或概念理解有误&#xff0c;轻则导致设计返工…...

Windows平台实战:CMake与MinGW联手编译libmodbus动态库

1. 为什么要在Windows下编译libmodbus动态库 很多工业自动化领域的开发者都会遇到这样一个需求&#xff1a;需要在Windows平台上开发Modbus通信工具。libmodbus作为一款开源的Modbus协议栈实现&#xff0c;因其轻量级和跨平台特性广受欢迎。但在Windows环境下直接使用源码会遇到…...