Redis常用命令及数据类型参数
1. 针对于string
SET key value / GET key
SET k1 v1
GET k1 // v1
String是二进制安全的,是可变长度的, 底层类似于ArrayList 是可扩容的,最大存储内存为 512MB。
2. 判断key中是否存在某个内容
EXISTS key
SET k1 v1
EXISTS k1 // 1
1 表示存在,0表示不存在
3. 删除某个key
3.1 DEL (若过大数据量可能出现阻塞队列)
SET k1 v1
DEL k1 //1
删除成功返回1,反之0
3.2 UNLINK(非阻塞性删除)
UNLINK key
SET k1 v1
UNLINK k1 // 1
删除成功返回1,反之0
4. 关于key是否到期
4.1 TTL 来查询key是否到期
TTL key
SET k1 v1
TTL k1 // -1
-1 代表永不过期,-2代表已经过期,其他数字代表正在倒计时。默认都是永不过期。
4.2 EXPIRE 来定义key过期时间
EXPIRE key timeNumber
SET k1 v1
EXPIRE k1 40 // 单位是秒
TTL k1 // 40
TTL k1 // 39
TTL k1 // 38
.....
TTL k1 // -2
5. KEYS * 获取目前创建的所有key
KEYS *
SET k1 v1;
SET k2 v2;
KEYS * // 1) "k2"// 2) "k1"
6. 数据库的移动
Redis 出厂自带16个db库,对应下标是 0 - 15
6.1 SELECT [0-15] 切换到指定的数据库
SELECT 1 // 移动到索引为1的数据库
6.2 MOVE key [0-15] 将当前的key移动到指定的数据库中
SET k1 v1
MOVE k1 2 // 将k1移动到索引为2的数据库中
7.DBSIZE 获取当前库中有多少key
SET k1 v1
DBSIZE // 1
8. 清空库
8.1 FLUSHDB 清空当前库
FLUSHDB
8.2 FLUSHALL 通杀所有库
FLUSHALL
9. 数据类型的命令操作
9.1 永远的帮助命令,HELP
HELP@[数据类型]
9.2 Redis 字符串(String)
特点: 单值,单Value

9.2.1 NX参数 Key不存在的时候进行创建
SET k1 v1 NX
GET k1 // v1
SET k1 v1 NX // 已经存在
// 输出(nil)
9.2.2 XX参数 Key存在时进行创建
SET k2 v2 XX // 此时db里是没有存在k2的
// (nil)
SET k2 v2
SET k2 v2 XX // 可以成功创建,value的值进行覆盖
9.2.3 GET 参数 返回原有的vealu。
SET k1 v1;
SET k1 v2 GET; // v1
GET k1; // v2
还可以直接使用GETSET来进行更该且返回值
SET k1 v1;
GETSET k1 v2; // v1
GET k1; // v2
9.2.4 EX, PX 设置过期时间
这个很简单。在后面跟随即可
SET k1 v1 EX 10; // 十秒后过期
SET k1 v1 PX 10000; // 一万毫秒后过期
9.2.5 EXAT 设置UNIX时间戳 单位秒
在Java中获取UNIX时间戳。
- Long.toString(System.curretTimeMillis() / 1000L);
SET k1 v1 EXAT xxxxx;
PXAT 是毫秒。把 /1000去掉即是毫秒。用法不变。
9.2.6 KEEPTTL 保留生存时间
SET k1 v1 EX 30; // 三十秒后过期
SET k1 v2; // 一旦这样做,重新赋值,则ttl = -1; 永不过期
TTL k1; // -1
// 所以应该在修改value的时候,后面加上KEEPLTTL保留生存时间
SET k2 v2 EX 30;
SET k2 v3 KEEPTTL;
9.2.7 批量 MSET,MGET,MSETNX
批量添加和批量获取键值对,很简单。
// 批量添加
MSET k1 v1 k2 v2 k3 v3 k4 v4;
// 批量获取
MGET k1 k2 k3 k4;
// MSETNX 就是不存在的时候在进行创建
MSETNX k5 v5 k6 v6 k7 v7;
但是需要注意的是 MSETNX是整体性的,具有原子性的。如果存在k1,不存在k4,那么整体来说都是存在的,则都不会创建。要么全部不存在,进行创建,要么不创建。
9.2.8 GETRANGE,SETRANGE截取和精确设置(覆盖)
GETRANGE key statrIndex stopIndex
很容易理解
SET k1 abcdefg1234567;
GETRANGE k1 0 -1; // abcdefg1234567
如果后面跟的参数是 0 到 -1 则表示获取全部的内容,下标从0开始,到全部数量 - 1 结束。
SET k1 abcdefg1234567;
GETRANGE k1 0 - 3; // abcd
SETRANGE key index value;
SET k1 aaaaaaaaaa;
SETRANGE k1 2 bbbb;
GET k1; // aabbbbaaaa
相关文章:
Redis常用命令及数据类型参数
1. 针对于string SET key value / GET key SET k1 v1 GET k1 // v1String是二进制安全的,是可变长度的, 底层类似于ArrayList 是可扩容的,最大存储内存为 512MB。 2. 判断key中是否存在某个内容 EXISTS key SET k1 v1 EXISTS k1 // …...
(七十四)大白话深入探索多表关联的SQL语句到底是如何执行的?(2)
今天咱们就以MySQL单表查询来举例,看看执行计划到底包含哪些内容 其实只要大家跟着专栏一步一步的学习下来,会很轻松的看懂执行计划,但是如果你之前对什么数据页,索引,索引使用规则,这些东西学的不扎实&am…...
销售使用CRM系统集成Excel的五个技巧
销售过程中有很多情况会降低团队的效率。通过正确的实施CRM客户管理系统,可以帮助您的企业自动执行手动任务、减少错误并专注于完成交易。这里有5个技巧,可以帮助您的销售人员通过CRM集成Excel为销售流程赋能并提高他们的整体效率。 技巧1:将…...
过来人告诉你:Java学到什么程度可以找工作?
大部分初次学习Java的同学都非常关注自己学到什么程度可以找工作就业,因为学习的目的一方面在于掌握知识、提高技能,另一方面就是就业谋生。今天笔者就来跟大家聊一聊一下Java学习到什么地步可以面试找工作。任何企业,不论大小,对…...
【Linux】目录结构
Linux世界里,一切皆文件。 /bin:是Binary的缩写,这个目录存放着最经常使用的命令。(常用) /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home:存放普…...
37.Java进阶之实现动态编译
文章目录1. 作为程序员的最高追求2.如何实现动态编译2.1 生成源码2.2 调用编译器API对Test源码文件进行编译生成字节码2.3 调用类加载器对字节码进行加载得到Class对象2.4 使用Class对象创建对象进行使用3. Java编译API学习4. 类加载机制4.1 类加载过程4.2 类加载器的层次结构4…...
【Python百日进阶-Web开发-Vue3】Day549 - Vue3 商城后台 09:Veux4-01基本概念
文章目录 一、Vuex是什么?1.1 Vuex官网1.2 Vuex安装1.3 Vuex概述1.4 核心概念二、Vuex的基本使用2.1 简单使用2.1.1 `src/store/index.js`创建store并导出2.1.2 `main.js`中引入并`use(store)`2.1.3 `src/views/index.vue`首页中使用store2.2 使用`mapState`简化 `$store.stat…...
GitLab 解析:为什么市场正在转向一体化 DevSecOps 平台?(附Forrester完整报告下载)
本文来源:about.gitlab.com 译者:极狐(GitLab) 市场部内容团队 如 GitLab 预测:2023 年企业会将更多的时间和资源投入到持续的安全左移上(详情请戳👉:重磅!GitLab 提出五大预测,洞见…...
ThreadLocal的内部结构和源码探究
目录一. ThreadLocal的内部结构1 常见的误解2 现在的设计3 这样设计的好处二. ThreadLocal的核心方法源码1 set方法2 get方法3 remove方法**4 initialValue方法**三. ThreadLocalMap源码分析1 基本结构2 弱引用和内存泄漏3 hash冲突的解决一. ThreadLocal的内部结构 通过之…...
Linux文件系统(下)
逻辑卷管理如果用标准分区在硬盘上创建了文件系统,为已有文件系统添加额外的空间多少是一种痛苦的体验。你只能在同一个物理硬盘的可用空间范围内调整分区大小。如果硬盘上没有地方了,你就必须弄一个更大的硬盘,然后手动将已有的文件系统移动…...
合并链表相关的练习
目录 一、合并两个有序链表 二、两数相加 一、合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2&…...
FFmpeg介绍及入门知识
1、简介 FFmpeg是一套由c语言编写的,可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,自身采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案,包含了非常先进的音频/视频编解码库libavcodec…...
ASA材料3D打印服务 抗紫外线材料3D打印服务 抗紫外线模型制作-CASAIM中科院广州电子
3D打印技术又称增材制造,通常是采用数字技术材料打印机来实现的,常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造。随着 3D 打印逐渐成为主流生产流程的一部分,ASA抗紫外线材料应运而生。中科院广州电子…...
MySQL workbench数据表和数据结构
数据表和数据结构的关系 数据表 学号姓名位置26002351李晓丽126002589张明伟226003214李雪冬326002132汪涵426006541邱明罕526003654李丽6 怎样去描述上面的数据表,用【数据表结构】表示 表头字段名字段类型位数备注学号xuehao整数/字符8 姓名xingming字符4 座…...
网络与信息安全岗位介绍—售后工程师
售后工程师是提供客户技术支持和服务的专业人士。他们的任务是提供客户技术支持,安装、维护和修复系统或产品,遵从安全操作规范,排除计算机故障,以及解决其他技术疑难杂症。 售后工程师还管理、安装、升级和维护现有硬件和软件&a…...
Nowcoder .链表分割
文章目录哨兵位节点哨兵位节点 链表分割 小于X 尾插到一个新链表 大于等于X 尾插到另一个链表 最后将两个链表链接起来 需要注意的细节:将第一个链表的尾与第二个链表的头相连接,再返回连接后的整个链表的头(哨兵位头节点的下一个࿰…...
猿创征文 | re:Invent 朝圣之路:“云“行业风向标
💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! AWS 亚马逊云科技re:Invent全球大会 2022年亚马逊云科技re:Invent全球大会震撼来袭,即将于北京时间11月30日-12月2日在美国内华达州,拉斯维加斯…...
mysql的distinct和group by的区别
GROUP BY 和 DISTINCT 都是用于从数据库中选择唯一值的 SQL 子句。它们之间的主要区别在于它们的作用方式和应用场景。 GROUP BY 语句用于将数据按照一个或多个列进行分组,然后对每个组应用一个聚合函数(如 COUNT、SUM、AVG 等)以得到每个组…...
Web前端:前端开发人员的职责有哪些?
前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。前端工程师还需要确保网站在各种浏览器和设备上都能正常运行,并且能够根据用户需求不断优化和改进网站。前端开发人员的角色和…...
BatchNorm1d的复现以及对参数num_features的理解
0. Intro 以pytorch为例,BatchNorm1d的参数num_features涉及了对什么数据进行处理,但是我总是记不住,写个blog帮助自己理解QAQ 1. 复现nn.BatchNorm1d(num_features1) 假设有一个input tensor: input torch.tensor([[[1.,2.,…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
