Redis 常见命令(redis命令详解)

createh51个月前 (04-28)技术教程11

一、redis中的常见数据结构

Redis共有5种常见数据结构,分别字符串(STRING)、列表(LIST)、集合(SET)、散列(HASH)、有序集合(ZSET)。

二、redis中字符串(String)介绍

String 类型是一个 k-v 键值对形式的数据类型,一个 key 对应一个 value。

使用场景:

  1. 计数器
  2. 统计多单位的数量(uid:122:follow 10)
  3. 粉丝数
  4. 对象缓存存储
  5. ...

三、String 常见命令

1.Redis 默认有16个数据库(0~15),默认使用第0个

可以使用 select 进行切换


2.查看数据库大小

使用 dbsize查看数据库大小


3.查看所有的key(当前库)

使用 keys *


4.清除当前数据库

flushdb

5.清空所有数据库

flushall

6.判断key是否存在

exists key

7.移除key

move key 1 // 1 表示移动到哪个数据库

del key // 删除当前数据库的key(可以多个)


8.设置key的过期时间

expire key 时间 // 单位时间为s

ttl key // 查看剩余存活时间


9.查看当前key的类型

type key

10.字符串追加(String)

append key appendValue

如果当前 key 不存在,作用相当于 set key

11.获取字符串长度(String)

strlen key


12.字符串i++操作(可用于阅读量实现)(String)

incr key


同理,i --

decr key

步长设置

incrby key 步长

decrby key 步长


13.字符串片段 Range (String)(Range:范围)

getrange key [startIndex] [endIndex]

对应java里的substring(但是这里会endIndex是一个闭区间)

特例,endIndex = -1 时,表示从startIndex 到最后


14.字符串替换 (String)(Range:范围)

setrange key index replaceString

  • 对应java里的replace
  • 注意,如果replaceString是一个字符串,那么会替换源字符串中index后replaceString长度的片段,结果如下


15.特殊set设置 (String)

setex(set with expire)

setex key 时间 value // 设置值,带过期时间


setnx(set if not exist)

setnx key value // 如果不存在,则设置


16.批量设置、批量获取(原子性操作)(String)

mset k1 v1 k2 v2 …

mget k1 k2 …


  • 特殊 msetnx 批量设置(要么都成功,要么都失败)(原子性)

17.设置高阶 (String)

1)getset

getset key value // 先get再set(如果不存在,先返回nil,在设置值;如果存在,就先返回原值,再设置新值)


18.重命名key

rename key newName


四、List(列表)常见命令

使用场景:

  1. 栈(lpush、lpop)
  2. 队列(lpush、rpop)消息队列
  3. 阻塞队列
  4. ....

1.从头部/尾部 插入 数据,以及数据 显示

lpush key value // 从左边插入一个值

rpush key value // 从右边插入一个值

lrange key 0 -1 // 从下标 0 开始,-1 代表遍历完



2.从头部/尾部 移除 数据

lpop key

rpop key


3.获取 指定索引的值

lindex key index


4.获取列表长度

llen key


5.移除指定的值

lrem key count(移除的个数) element


6.列表修剪 trim

相当于 Java 中的 substring()

ltrim key startIndex endIndex


7.也可以使用set

lset key index value // 将列表中 指定 index 的值替换为对应的 value

  • 需要保证key和index都存在,否则报错


8.插入指定的值

linsert key before|after pivot(那个值后) value


相关文章

自定义代码生成器(上)(推荐几个代码自动生成的工具)

1 概述1.1 介绍在项目开发过程中,有很多业务模块的代码是具有一定规律性的,例如controller控制器、service接口、service实现类、mapper接口、model实体类等等,这部分代...

在 SpringBoot 中如何对数据进行脱敏显示

1、背景基于数据安全与隐私保护、防止信息泄露风险、遵守隐私法规、增强用户安全感等方面的考虑,现在的应用,一般会对对个人信息或敏感数据字段进行脱敏,比如将手机号或信用卡号等中间的若干位数字替换为***等...

Redis性能优化:scan命令替换keys命令的用法和原理解析

一、keys命令用法keys命令用于返回指定的正则表达式所匹配的所有key的列表,其所检索的是Redis当前所使用的数据库(默认为0号数据库)的所有key,用法如下:1. *匹配数据库中所有key...

MyBatis十大高频坑点避雷指南:程序员血泪总结

1. #{ }和${ }混淆使用问题:#{}是预编译处理,${}是字符串替换。使用${}可能导致SQL注入。错误示例:@Select("select * from user where nam...

八股文面试题-JAVA基础(八股文 面试)

1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Java Runtime Envi...

Gateway网关在url参数带有特殊字符的情况下转发失败(响应400)

本文主要分享了,SpringCloud Gateway网关在url参数带有空格或者特殊字符的情况下,转发失败导致响应错误码400的解决方案。响应400错误码的2种场景:1.参数带空格,Gateway会...