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

深入redis过程-命令

目录

通用命令

get

set

keys

exists

del

expire key seconds

ttl

type

常用数据结构

String类型

SET

GET

MSET

MGET

INCR

INCRBY

INCRBYFLOAT

SETNX

SETEX

Hash类型

HSET key field value

HGET key field

HMSET

HMGET

HGETALL

HKEYS

HVALS

HINCRBY

HSETNX

List类型

LPUSH Key element...

LPOP Key

RPUSH Key element...

RPOP Key

LRANGE key star end

BLPOP和BRPOP

Set类型

SADD Key member...

SREM Key member...

SCARD key

SISMEMBER key member

SMEMBERS

SINTER key1 key2...

SDIFF key1 key2...

SUNION key1 key2...

ZSet类型

ZADD key score member

ZREM key member

ZSCORE key member

ZRANK key member

ZCARD key

ZCOUNT key min max

ZINCRBY key increment member

ZRANGE key min max

ZRANGEBYSCORE key min max

ZDIFF、ZINTER、ZUNION

数据库管理命令

dbsize

select

flushdb

flushall


Redis是一个Key-value的数据库,Key一般是String类型,value的类型多种多样

通用命令

通用指令是部分数据类型的,都可以使用的指令,可以通过help [command]可以查看一个命令的具体用法

get

根据key获取String类型的value

set

添加或修改一个String类型的键值对,如果key存在就修改key对应的value,如果不存在就插入key value

keys

查找所有的key

exists

判断一个key是否存在,存在返回1,不存在返回0

del

删除key,后面可以指定删除多个key,如果不存在指定删除的key不会删掉

expire key seconds

给一个key设置有效期

ttl

查看以一个key的剩余有效期(有效期为-2 代表已经被删除了,为-1 代表永久保存)

type

返回key对应的数据类型

常用数据结构

Redis提供了一些数据结构供我们往Redis中存取数据,最常用的的有5种:字符串(String)、哈希(Hash)、列表(list)、集合(set)、有序集合(ZSET)

String类型

String类型,也就是字符串类型,是Redis中最简单的存储类型。其value是字符串,不过根据字符串的格式不同,又可以分为3类:

  • String:普通字符串
  • int:整数类型,可以做自增、自减操作
  • float:浮点类型,可以做自增、自减操作

SET

添加或者修改已经存在的一个String类型的键值对

GET

根据key获取String类型的value

MSET

批量添加多个string类型的键值对

MGET

根据多个key获取多个String类型的value

INCR

让一个整型的key自增1

INCRBY

让一个整型的key自增并指定步长

INCRBYFLOAT

让一个浮点类型的数字自增并指定步长

SETNX

添加一个String类型的键值对,前提是这个key不存在,否则不执行

SETEX

添加一个String类型的键值对,并且指定有效期

Hash类型

Hash类型,也叫散列,其value是一个无序字典,类似于java中的HashMap结构。Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD

HSET key field value

添加或者修改hash类型key的field的值

HGET key field

获取一个hash类型key的field的值

HMSET

批量添加多个hash类型key的field的值

HMGET

批量获取多个hash类型key的field的值

HGETALL

获取一个hash类型的key中的所有的field和value

HKEYS

获取一个hash类型的key中的所有的field

HVALS

获取一个hash类型的key中的所有的value

HINCRBY

让一个hash类型key的字段值自增并指定步长

HSETNX

添加一个hash类型的key的field值,前提是这个field不存在,否则不执行

List类型

Redis中的List类型与java中的LinkedList类似,也可以看做是一个双向链表结构

LPUSH Key element...

向列表左侧插入一个或多个元素

LPOP Key

移除并返回列表左侧的第一个元素,没有则返回nil

RPUSH Key element...

向列表右侧插入一个或多个元素

RPOP Key

移除并返回列表右侧的第一个元素

LRANGE key star end

返回一段角标范围内的所有元素

BLPOP和BRPOP

与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

Set类型

Redis的Set结构与java中的HashSet类似,可以看做是一个value为null的HashMap

SADD Key member...

向set中添加一个或多个元素

SREM Key member...

移除set中的指定元素

SCARD key

返回set中元素的个数

SISMEMBER key member

判断一个元素是否存在于set中

SMEMBERS

获取set中的所有元素

SINTER key1 key2...

求key1与key2的交集

SDIFF key1 key2...

求key1与key2的差集

SUNION key1 key2...

求key1与key2的并集

ZSet类型

Redis的ZSet是一个可排序的set集合,与java中的TreeSet有些类似,但底层数据结构却差别很大。ZSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加hash表。

ZADD key score member

添加一个或多个元素到zset,如果已经存在则更新其score值

ZREM key member

删除zset中的一个指定元素

ZSCORE key member

获取zset中的指定元素的score值

ZRANK key member

获取zset中的指定元素的排名

ZCARD key

获取zset中的元素个数

ZCOUNT key min max

统计score值在给定范围内的所有元素的个数

ZINCRBY key increment member

让zset中的指定元素自增,步长为指定的increment值

ZRANGE key min max

按照score排序后,获取指定排名范围内的元素

ZRANGEBYSCORE key min max

按照score排序后,获取指定score范围内的元素

ZDIFF、ZINTER、ZUNION

求差集、交集、并集

数据库管理命令

redis数据库为固定的,有0~15编号的的数据库

dbsize

当前数据库表的个数

select

选择使用哪个编号的数据库(切换数据库)

flushdb

删除当前数据库下的所有表

flushall

删除所有数据库下的所有表

相关文章:

  • Golang并发模型:Goroutine 与 Channel 初探
  • 接口01-Java
  • Matlab R2022b 安装成功小记
  • 力扣101. 对称二叉树
  • Java中的spring——面试题+答案(Spring Boot)——第20期
  • LeetCode(32)串联所有单词的子串【滑动窗口】【困难】(含图解)
  • 【MATLAB源码-第89期】基于matlab的灰狼优化算法(GWO)无人机三维路径规划,输出做短路径图和适应度曲线
  • 域名和ip的关系
  • Ajax 是什么? 如何创建一个 Ajax?
  • Docker 命令详解
  • 小程序如何禁止指定用户访问?如何设置指定用户才能访问?
  • 【虚拟机】在VM中安装 CentOS 7
  • 如何使用 Java 在Excel中创建下拉列表
  • Linux CenTOS命令备忘
  • Go语言的学习笔记2——Go语言源文件的结构布局
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 4. 路由到控制器 - Laravel从零开始教程
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • angular2 简述
  • JAVA SE 6 GC调优笔记
  • javascript 总结(常用工具类的封装)
  • Python中eval与exec的使用及区别
  • rc-form之最单纯情况
  • Terraform入门 - 1. 安装Terraform
  • VUE es6技巧写法(持续更新中~~~)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 对象管理器(defineProperty)学习笔记
  • 机器学习学习笔记一
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 与 ConTeXt MkIV 官方文档的接驳
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 在Mac OS X上安装 Ruby运行环境
  • 如何正确理解,内页权重高于首页?
  • ​【已解决】npm install​卡主不动的情况
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​secrets --- 生成管理密码的安全随机数​
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (BFS)hdoj2377-Bus Pass
  • (C++17) std算法之执行策略 execution
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (五)关系数据库标准语言SQL
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)Java算法:二分查找
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .Net CF下精确的计时器
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本