02、Redis从入门到放弃 之 常用命令和基本数据类型操作

embedded/2025/1/17 18:21:15/

Redis从入门到放弃 之 常用命令和基本数据类型操作

一、Redis通用命令

redis-cli -h 127.0.0.1 -p 6379  redis客户端登录 -h host    -p  端口    -a   密码exit 退出当前客户端info 返回redis的一些相关信息(包括端口、配置文件等)flushdb 清空当前库中的所有数据flushall 清空所有库中的所有数据save 将当前内存中的数据持久化到dump.rdb中(只管保存、其他全部阻塞)bgsave 将当前内存中的数据持久化到dump.rdb中(后台异步进行快照操作)set  k1   v1     设置K / V 键值对 (重复设置、覆盖原来的value)get k1        获取 K1对应的值keys a*            获取当前库中所有以a开头的key键dbsize 查看当前所在库的key的数量select 2 选择第3个库del k1        删除dump k1       序列化给定的key,并返回被序列化的值exists  k1     k1是否存在,存在返回1、不存在返回0expire k1 10  设定k1的过期时间为10秒(只存在10秒,过期后自动删除)(返回1 设置成功、返回0设置失败)ttl k1 查看k1的生命周期还有多长时间persist k1 移除k1的过期时间,k1将持久保持expireat k1 1293840000 设置过期时间为  1293840000(时间戳)randomkey 随机返回一个当前库的keyrename k1 kk1 修改k1的名称为kk1(kk1存在时,原k1的值将覆盖原kk1的值)renamenx k1 kk1  仅当kk1不存在时,将k1改为kk1type k1 返回k1的所存储值的类型move k1 2 将k1移动到第3个库(原库中的k1删除,第三个库中增加k1)

二、基本数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

1、string字符串

string是redis最基本的类型,一个key对应一个value。是二进制安全的,比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。常用字符串命令:set k1 'helloWorld'   为k1赋字符串值get  k1  获取k1对应的值getset k1  'worldHello'      将k1的值重新设为worldHello并返回k1原来的值he'llWorld (如果k1不存在,则新建k1)mget k1 k2 k3获取k1 k2 k3的值setex k1 10 'helloWorld'设置k1的值位helloWorld,并将其过期时间设置为10秒setnx  k1 'testsetnx'k1不存在时,设置k1的值位testsetnx。(成功返回1,不成功返回0)setrange k1 1 'bbbb'从偏移量1位置开始  复写k1的原来的值 (原helloWorld,现hbbbbWorld)getrange k1 0 2 获取(截取)k1从第0位到第2位的值strlen  k1 获取k1 的值的字符串长度mset k1 v1 k2 v2 k3 v3同时设置k1 k2 k3 的值分别为v1 v2 v3msetnx k1 v1 k2 v2 k3 v3当且仅当 “所有”k1 k2 k3  都  不存在时,设置k1 k2 k3的值位v1 v2 v3incr k1  如果k1的值为 数字(整数),则将其值加1. 若k1 不存在 则设置k1的值为1(默认值为0,incr之后为1)incrby k1 5如果k1的值为 数字(整数),则将其值加5.若k1 不存在 则设置k1的值为5(默认为0,incrby之后为5)incrbyfloat k1 1.22如果k1的值为 数字,则将其值加1.22若k1不存在则设置k1的值为1.22(默认为0,incrbyfloat之后为1.22)decr k1  如果k1的值为 数字(整数),则将其值减1,若k1不存在则设置k1的值为-1(默认为0, decr之后为-1)decrby k1 5如果k1的值为 数字(整数),则将其值减5,若k1不存在则设置k1的值为-5(默认为0,decrby之后为-5)
(我曹,那浮点数的减法  是什么命令??????:   只能用 incrbyfloat k1 负数   来代替喽)append k1 aaa如果k1的值是个字符串,则在其值末尾拼接aaa,若k1不存在,则新建一个k1,其值为aaa

2、hash(哈希)

Redis hash 是一个键值对集合。是一个string类型的field和value的映射表,hash特别适合用于存储对象。

hset  person id 1 设置key为person 的hash,且其id  为1hget person  id 获取key为person   的hash的id字段hmset person id 1 name lee 设置key为person的hash,且其id为1  name为leehmget person id name 获取key为person的id 和  name字段hsetnx person age 25 当key为person的hash中age不存在时,设置age字段为25hkeys person获取key为person的hash的所有字段hvals person获取key为person的hash的所有字段的值hgetall person获取key为person的hash的所有字段和字段值del   person 删除key为person  的hash数据hdel person id name 删除key为person中 的 id和name字段(所有字段都删除后 person自动删除)exist person 判断key为person的数据是否存在hexists person id 判断key为person的hash中id字段是否存在(没有hmexists   泪目)hincryby person id 2 给person的id字段上增加2(如果id为数字 且是整数)   (没有hdecrby  泪目)hincrbyfloat person id 1.2 给person的id字段增加1.2(如果id为数字)(没有hincrbyfloat 泪目)dbsize 获取库中所有key的数目hlen  person 获取key为person的hash中  的  字段总数
(hscan命令  没看明白   以后在补上)

3、list(列表)

Redis列表是简单的字符串列表(双向链表结构),按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

(列表允许   数值  重复)
lpush  teacher   lee xue dong 从左侧将lee xue  dong插入teacher(key)中lpop teacher        从teacher左侧移除一个数据rpush  teacher  lee xue dong 从右侧将lee xue  dong插入teacher(key)中rpop teacher 从teacher右侧侧移除一个数据lrange teacher 0  2 从左侧遍历第0个到第2个teacher数据 (0 -1是遍历全部数据)(没有rrange命令)lindex teacher 1 索引teacher从左侧数第2个元素。(第一个是dong 第二个是xue)linsert teacher before lee  geng 从左侧数teacher在lee的前边插入geng (即在lee的左侧插入geng,左侧数 前边就是左边)(没有rinsert)linset teacher after lee geng 从左侧数teacher在lee的后边插入geng(即在Lee的右侧插入geng,左侧数 后边就是右侧)(没有rinsert)llen teacher 获取teacher列表的长度lpushx teacher aa 如果teacher存在,从左侧插入aa。(teacher不存在则插不进去 不会建立新的键)rpushx teacher aa 如果teacher存在,从右侧插入aa。(teacher不存在则插不进去 不会建立新的键)lrem teacher 2 tian 从左侧数 删除teacher列表中的2个tian(如果tian不够,则删除所有)lrem teacher -2 tian 从右侧数 删除teacher列表中的2个天(如果tian不够,则删除所有)lrem teacher 0 tian 删除teacher列表中所有的tianlset teacher 1 su 从左侧数teacher列表在第2个位置添加sultrim teacher 0 2 从左侧数将原teacher列表中从第0个值到第2个值得数据重新赋值给teacherrpoplpush teacher teacher2 将teacher列表中右侧第一个元素移除,并在teacher2列表中左侧添加进去

4、set(集合)

Redis的Set是string类型的无序集合,集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

(集合中  不允许  重复 、  且是无序的)
sadd test a b c d    向test集合中添加元素a b c dsmembers test       获取test集合的所有元素sismember test a   验证元素a是否是test集合的成员 (1是0不是)scard test               获取test集合中所有元素的个数srem  test a b         从test集合中移除元素a和bspop test       从test集合中随机出栈(移除一个元素)srandmember test    从test集合中随机显示一个数smove test1 test2 a   将元素a从test1集合中移到test2集合中sdiff test1 test2集合test1和集合test2的  差集(即test1集合存在test2集合中不存在的元素)sdiffstore test3 test1 test2  将test1集合和test2集合  的差集  赋值给test3集合(如果test3集合中有值  则覆盖原
来的值)sinter test1 test2集合test1和集合test2的   交集(即test1集合和test2集合共同拥有的元素)sinterstore test3 test1 test2  将test1集合和test2集合  的交集  赋值给test3集合(如果test3集合中有值  则覆盖原来的值)sunion test1 test2集合test1和集合test2 的 并集 (即test1集合  和  test2 集合  所有的元素组合  且会去重)sunionstore test3 test1 test2将集合test1和集合test2的  并集  赋值给集合test3
(sscan命令没看明白  以后补上)

5、sorted set(有序集合)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

(集合中   不允许  重复,有序的   分数是可以重复的)
zadd  subject 1 chinese 2 english 3 math  设置subject集合  元素  分别为 1分 chinese  2分english 3分 math
zrange subject 0 -1 显示全部的subject集合的元素(分数默认是由低到高的)
zrange subject 0 -1 withscores 显示全部的subject集合的元素 和  对应的分数(分数默认是由低到高的)
zcard subject显示subject集合的元素个数
zcount  subject 1 2计算subject集合 分数在1和2之间的元素个数(包括1和2)
zincrby subject 10 chinese
给集合subject的chinese元素的分数加10
zinterstore subject 
zlexcount subject 

http://www.ppmy.cn/embedded/154722.html

相关文章

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…

Vue API 盲点解析

在了解了一些实用的开发技巧和编码理念后,我们在项目的开发过程中难免也会遇到因为不熟悉 Vue API 而导致的技术问题,而往往就是这样的一些问题消耗了我们大量的开发时间,造成代码可读性下降、功能紊乱甚至 bug 量的增加,其根本原…

MySQL:表的内外连接

目录 1.内连接 2.左外连接和右外连接 178. 分数排名 - 力扣(LeetCode) 1.内连接 内连接就是两张表做笛卡尔积,再加上一个筛选条件。 这两个sql语句是一样的。 2.左外连接和右外连接 左外连接就是左表必须是完全显示,即使筛选…

ubuntu的截图工具有哪些

在 Ubuntu 上,有多种截图工具可供选择,以下是一些常用的工具及其使用方法: 1. 内置截图工具 Ubuntu 自带了一个简单的截图工具,可以通过快捷键或应用程序启动。 快捷键: 全屏截图:Print Screen&#xff08…

BY组态-低代码web可视化组件

简介 BY组态是贵州华创云科技完全自主研发的集实时数据展示、动态交互等一体的全功能可视化平台。帮助物联网、工业互联网、电力能源、水利工程、智慧农业、智慧医疗、智慧城市等场景快速实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。具有实时监控、多样、变化、动态…

抖音矩阵是什么

抖音矩阵是指在同一品牌或个人IP下,通过创建多个不同定位的抖音账号(如主号、副号、子号等),形成一个有机的整体,以实现多维度、多层次的内容覆盖和用户互动。以下是关于抖音矩阵的详细介绍: 抖音矩阵的类…

thermocalc python调用

ThermoCalc是一个专业的材料力学计算软件,它提供了一个Python接口,可以通过调用其Python库来进行计算。首先,你需要安装ThermoCalc软件,并确保它的Python接口已经被激活。然后,你可以使用Python代码来调用ThermoCalc的…

01.02、判定是否互为字符重排

01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 在这道题中,我们的任务是判断两个字符串 s1 和 s2 是…