Redis 常用基本命令

ops/2024/9/29 5:35:21/
查看所有键

keys命令可用于查看所有键,语法如下
pattern用于匹配key,其中*表示任意个任意字符

keys pattern

键总数
dbsize可用于查看键的总数,语法如下

dbsize

判断键是否存在
exists命令可用于判断一个键是否存在,语法如下

exists key

删除键
del可用于删除指定键,语法如下
返回值为删除键的个数,若删除一个不存在的键,则返回0。

del key [key ...]

查询键的剩余过期时间

ttl key

数据库管理命令
Redis默认有编号为0~15的16个逻辑数据库,每个数据库之间的数据是相互独立的,所有连接默认使用的都是0号数据库
切换数据库
select命令可用于切换数据库,语法如下

  • 若index超出范围,会报错
select index

清空数据库
flushdb命令会清空当前所选用的数据库,flushall命令会清空0~15号所有的数据库

string

Redis中的string类型保存的是字节序列(Sequence of bytes),因此任意类型的数据,只要经过序列化之后都可以保存到Redis的string类型中,包括文本、数字甚至是一个对象
set
set命令用于添加string类型的键值对,具体语法如下

SET key value [NX|XX] [EX seconds|PX milliseconds]

各选项含义如下

  • NX:仅在key不存在时set
  • XX:仅在key存在时set
  • EX seconds:设置过期时间,单位为秒
  • PX milliseconds:设置过期时间,单位为毫秒

get
get命令用于获取某个string类型的键对应的值,具体语法如下

GET key

incr
incr命令用于对数值做自增操作,具体语法如下

  • 若key对应的value是整数,则返回自增后的结果,若不是整数则报错,若key不存在则创建并返回1。
INCR key

decr
decr命令用于对数值做自减操作,具体语法如下
若key对应的value是整数,则返回自减后的结果,若不是整数则报错,若key不存在则创建并返回-1。
应用场景
string类型常用于缓存、计数器等场景。

DECR key
list类型

添加元素
向列表中添加元素的命令有lpush、rpush 、linsert,各命令的功能与用法如下
lpush
该命令用于向list左侧添加元素,语法如下

lpush key element [element ...]
示例
lpush l1 a b c

rpush
该命令用于向list右侧添加元素,语法如下

rpush key element [element ...]

linsert
该命令用于向list指定位置添加元素,语法如下

linsert key before|after pivot element
示例
linsert l1 after b new

查询元素
查询list元素的命令有lindexlrange,各命令的功能与用法如下

  • lindex
    该命令用于获取指定索引位置的元素,语法如下
  • index从左到右依次是0,1,2…,从右到左依次是-1,-2,-3…
lindex key index

lrange
该命令用于获取指定范围内的元素列表,语法如下

lrange key start stop
示例
获取list全部元素,命令如下
lrange l1 0 -1


删除list元素的命令有lpop、rpop、lrem,各命令的功能与用法如下
lpop
该命令用于移除并返回list左侧元素,语法如下

lpop key [count]

rpop
该命令用于移除并返回list右侧的元素,语法如下

rpop key [count]

lrem
该命令用于移除list中的指定元素,语法如下

lrem key count element

count参数表示要移除element元素的个数(list中可以存在多个相同的元素),count的用法

  • 若count>0,则从左到右删除最多count个element元素
  • 若count<0,则从右到左删除最多count(的绝对值)个element元素
  • 若count=0,则删除所有的element元素

修改元素
lset命令可用于修改指定索引位置的元素,语法如

lset key index element

llen命令可用于查看list长度,语法如下

llen key
  • 社交应用中,可使用list缓存每个用户发布的最新的N条记录。
  • list可用作异步消息队列。
set类型

add
该命令用于向set中添加元素,语法如下

  • smembers
    该命令用于查询set中的全部元素,语法如下
smembers key
  • srem
    该命令用于移除set中的指定元素,语法如下
srem key member [member ...]
  • spop
    该命令随机移除并返回set中的n个元素,语法如下
spop key [count]
  • srandmember
    该命令随机返回set中的n个元素(不删除),语法如下
srandmember key [count]
  • scard(Cardinality,基数)
    该命令用于查询set中的元素个数,语法如下
scard key
  • sismember
    该命令用于元素是否在set中,语法如下
sismember key element
  • sismember
    该命令用于元素是否在set中,语法如下
sismember key element
``

sinter
该命令用于计算多个集合的交集,语法如下

sinter key [key ...]

sunion
该命令用于计算多个集合的并集,语法如下

sunion key [key ...]

sdiff
该命令用于计算多个集合的差集,语法如下

sdiff key [key ...]

set可用于计算共同关注好友,随机抽奖系统等等。

hash类型

hash类型类似于Java语言中的HashMap,可用于存储键值对。
hset
该命令用于向hash中增加键值对,语法如下
hset
该命令用于向hash中增加键值对,语法如下

hset key field value [field value ...]

hget
该命令用于获取hash中某个键对应的值,语法如下

hget key field

hdel
该命令用于删除hash中的指定的键值对,语法如下

hdel key field [field ...]

hlen
该命令用于查询hash中的键值对个数,语法如下

hlen key

hexists
该命令用于判断hash中的某个键是否存在,语法如下

hexists key field

hkeys
该命令用于返回hash中所有的键,语法如下

hkeys key

hvals
该命令用于返回hash中所有的值,语法如下

hvals key

hgetall
该命令用于返回hash中所有的键与值,语法如下

hgetall key

hash类型可用于缓存对象等。

zset类型

zset(sorted set)被称为有序集合,同set相似,zset中也不会包含相同元素,但不同的是,zset中的元素是有序的。并且zset中的元素并非像list一样按照元素的插入顺序排序,而是按照每个元素的分数(score)排序。
zadd
该命令用于向zset中添加元素,语法如下

ZADD key [NX|XX] score member

zcard
该命令用于计算zset中的元素个数,语法如下

zcard key

zscore
改名用于查看某个元素的分数,语法如下

zscore key member
  • zrank/zrevrank
    这组命令用于计算元素的排名,其中zrank按照score的升序排序,zrevrank则按照降序排序,语法如下
zrank/zrevrank key member

**说明:**名次从0开始。

  • zrem
    该命令用于删除元素,语法如下
zrem key member [member ...]
  • zincrby
    该命令用于增加元素的分数,语法如下
zincrby key increment member
  • zrange
    该命令用于查询指定区间范围的元素,语法如下
zrange key start stop [byscore] [rev] [limit offset count] [withscores]

说明:

  • start/stop:用于指定查询区间,但是在不同模式下,其代表的含义也不相同
    • 默认模式下,start~stop表示的是名次区间,且该区间为闭区间。名次从0开始,且可为负数,-1表示倒数第一,-2表示倒数第二,以此类推。
    • byscore模式下(声明了byscore参数),则start~stop表示的就是分数区间,该区间默认仍为闭区间。在该模式下,可以在startstop前增加(来表示开区间,例如(1 (5,表示的就是(1,5)这个开区间。除此之外,还可以使用-inf+inf表示负无穷和正无穷。
  • byscore:用于切换到分数模式
  • rev:表示降序排序。在byscore模式下使用rev参数需要注意查询区间,start应大于stop。
  • limit:该选项只用于byscore模式,作用和sql语句中的limit一致
  • withscores:用于打印分数

http://www.ppmy.cn/ops/45212.html

相关文章

存储器和CPU的连接与TCP的流量控制

存储器与CPU的连接 存储容量的拓展 &#xff08;1)位拓展&#xff1a;增加存储字长 &#xff08;2&#xff09;字拓展 增加存储器字的数量 例题&#xff1a;设CPU有16根地址线&#xff0c;8根数据线&#xff0c;并用MREQ作为访问存储控制信号(低电平有效)&#xff0c;WR作为…

气缸前端锁紧技术探讨:从四个方面、五个方面、六个方面和七个方面深度解析

气缸前端锁紧技术探讨&#xff1a;从四个方面、五个方面、六个方面和七个方面深度解析 在工业自动化领域&#xff0c;气缸作为关键的执行元件&#xff0c;其前端锁紧技术的稳定性与可靠性直接影响到整个系统的运行效率。本文将从四个方面、五个方面、六个方面和七个方面&#…

计算机网络-运输层

运输层 网络层在两个端系统之间的交付服务拓展到运行在两个不同端系统上的应用层进程之间的交付服务。 概述和运输层服务 运输层协议为运行在不同主机上的引用进程之间提供了逻辑通信功能。通过逻辑通信&#xff0c;运行在不同进程之间的主机好像直接连接一样。 运输层协议…

Django 入门教程

1. Django简介 基本介绍 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。 MVC 与 MVT 模型 MVC 模型 MVC 模式&#xff08;Model–view–controller&#xff09;是软件工程中的一种软件架构模式&#xff0c;把软件系统分为三个基本部分&#xff1a;模型&am…

北美码农面试流程,北美码农面试经验

听说有人还不知道OA是什么&#xff1f;HR电联跟Tech phone interview什么区别&#xff1f;Onsite interview有哪些关键点具体考些什么不清楚&#xff1f;下面为大家分享北美码农面试流程。 SDE面试流程主要包含&#xff1a; Online assessment HR contact email/phone Tech…

vue3中el-form表单校验,再点击提交按钮的时候通过校验才进行提交

vue3中el-form表单校验&#xff0c;再点击提交按钮的时候通过校验才进行提交 一、前言1、案例 一、前言 在 Vue 3 中&#xff0c;可以使用 Element UI 的 <el-form> 组件配合 <el-form-item> 来实现表单的必填项校验&#xff0c;并在提交时根据校验结果来决定是否…

PX4使用yolo仿真环境搭建

文章目录 前言一、修改机架sdf文件二、安装yolo三、运行 前言 ubuntu20.04 PX4 1.13.3 已配置好PX4 ROS gazebo环境 一、修改机架sdf文件 将双目相机加到仿真的iris机架上 修改下图文件 添加如下&#xff1a; <include><uri>model://stereo_camera</uri>…

Tensorflow2.0笔记 - AutoEncoder做FashionMnist数据集训练

本笔记记录自编码器做FashionMnist数据集训练&#xff0c;关于autoencoder的原理&#xff0c;请自行百度。 import os import time import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics, …