Redis基础学习(五大值数据类型的常用操作命令)

目录

一、Redis基本知识与Redis键(key)常用操作命令。

二、Redis的五大值的数据类型。(value)

三、Redis关于键(key)的值常用操作指令表格统计。

(1)字符串(String)。

(2)列表。(List)

(3)哈希表(Hash)

(4)集合。(Set)

(5)有序集合。(ZSet)


一、Redis基本知识与Redis键(key)常用操作命令。

  • redis的默认端口6379。mysql默认端口号3306。
  • 默认16个数据库,类似数组的下标从0开始,初始默认使用0号库。可以使用select index来切换数据库,如:select 1,表示切换到第2个库。
  • 统一密码管理,所有的库密码相同。

  • Redis键(key)的相关操作命令。

二、Redis的五大值的数据类型。(value)

  • redis字符串。(String)
  • redis列表。(List)
  • redis集合。(Set)
  • redis哈希表。(Hash)
  • redis有序集合(Zset)

三、Redis关于键(key)的值常用操作指令表格统计。

(1)字符串(String)。
  • Redis值(字符串)常用命令的表格统计。

|--------------------------|--------------------------------------|
| 命令 | 基本介绍 |
| set key value | 添加键值对。若键存在,会覆盖原值。(简单设置字符串值) |
| get key | 获取键对应值。 |
| setnx key value | key不存在时,才会设置对应的key与value。 |
| append key value | 原有键的值后追加值。。 |
| strlen key | 获取字符串值的长度。 |
| mset k1 v1 k2 v2 ... | 同时设置多个key-value。 |
| msetnx k1 v1 k2 v2 ... | 原子性:当所有的key就不存在值时,则设置成功。 |
| mget k1 k2... | 同时获取多个key对应的value。 |
| getrange key start end | 获取值的范围。与Java的substring很像,提取指定范围的字符串。 |
| setrange key start value | 覆盖指定起始位置的值。 |
| setex key 过期时间 value | 设置键与过期时间与值。 |
| getset key value | 设置新值同时返回旧值。 |

  • Redis值(字符串)关于数字值的递增、递减命令的表格统计。

|-------------------|-------------------------------------|
| 命令 | 基本介绍 |
| incr key | 指定key的数字值的递增。如果key不存在,默认为1。 |
| decr key | 指定key的数字值的递减。如果key不存在,默认为-1。 |
| incrby key +value | 对指定key递增指定数值。如果key不存在,则在0基础上+递增的值。 |
| decrby key -value | 对指定的key递减指定数值。如果key不存在,则在0基础上-递增的值。 |

(2)列表。(List)
  • Redis列表是简单的字符串列表。底层实际上是使用双向链表实现的。
  • Redis值(列表)常用命令的表格统计。

|------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| 命令 | 基本介绍 |
| lpush k1 v1 k2 v2 ... | 从左边插入一个或多个值 |
| rpush k1 v1 k2 v2 ... | 从右边插入一个或多个值 |
| lrange key start stop | 查询指定列表key的指定区间的元素。 正数下标:0第一个元素,负数下标:-1倒数1个元素,-2倒数第2个 |
| lprop key count | 从左边弹出多个元素,count可以省略,默认值为1 |
| rprop key count | 从右边弹出多个元素,count可以省略,默认值为1 |
| rproplpush source destination | 从一个列表右边弹出一个元素并放到另外一个列表中 |
| lindex key index | 查询指定索引位置的元素(从左到右) |
| llen key | 获取指定列表的长度 |
| linsert key before|after value newvalue | 将值newvalue插入到列表key当中,位于值value之前或之后。 value不存在列表中时,不执行任何操作 |
| lrem key count value | 根据参数count的值,移除列表中与参数value相等的元素 若count>0,从表头开始搜索,移除与value相等的元素,数量为count 若count<0,从表尾开始搜索,移除与value相等的元素,数量为count绝对值 若count=0,移除表中所有与 value 相等的值。 |
| lset key index value | 将列表key的下标索引为index的元素的值设置为value。 |

(3)哈希表(Hash)
  • Redis hash 是一个键值对集合。
  • Redis hash是一个 string 类型的 field 和 value 的映射表, hash 特别适合用于存储对象。 类似于java 里面的 Map<String,Object>。

|----------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| 命令 | 基本介绍 |
| hset key field value [field1 value1 field2 value2 ...] | 设置单个或多个field及value。 将哈希表key中的域field的值设为value 。 |
| hget key field | 获取(查询)指定field的值value。 |
| hgetall key | 返回指定hash表的所有域field以及值value。 |
| hexists key field | 判断给定的域field是否存在。1:存在,0:不存在 |
| hkeys key | 返回指定hash表的所有的域filed |
| hvals key | 返回指定hash表的所有的值value |
| hlen key | 返回指定hash表的域filed数量 |
| hincrby key field increment | 给指定hash表的指定域filed的值加上指定的增量。 增量也可以为负数,相当于对给指定域filed的值value进行减法操作。 如果域filed对应的值value不是integer会错误提示。 |
| hsetnx key field value | 将哈希表key中的域field的值设置为value ,当且仅当域field不存在! |

(4)集合。(Set)
  • Redis Set与List类似,是一个列表的功能,特殊之处在于Set是可以自动排重的!当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。
  • Redis的Set是String类型的无序集合,他的底层实际是一个value为null的Hash表,添加,删除,查找复杂度都是O(1)。

|-----------------------------------------|-------------------------------------------------------------------------------|
| 命令 | 基本介绍 |
| sadd key value1 value2 ... | 添加一个或多个元素。(会自动去重) |
| smembers key | 取出(查询)所有元素 |
| sismember key value | 判断集合key中是否包含元素value。其中1:有,0:没有 |
| scard key | 返回集合中元素的个数 |
| srem key member [member1 member2 ...] | 移除(删除)集合key中的一个或多个member元素。 若不存在的member元素会被忽略执行。 |
| spop key [count] | 随机弹出count个元素。count默认为1。 被弹出的元素会被删除,返回弹出元素值 |
| srandmember key [count] | 随机获取count个元素。count默认为1。 不会删除集合中的元素。 |
| smove source destination member | member元素从集合source移除,并添加到destination 集合中。 若destination 集合中已有该元素,只进行source移除操作。 |
| sinter | |
| sinterstore | |
| sunion | |
| sunionstore | |
| sdiff | |

(5)有序集合。(ZSet)
  • 有时候补充。。。。2025.7.8,23:33
相关推荐
好奇的菜鸟3 小时前
Spring Boot 事务失效问题:同一个 Service 类中方法调用导致事务失效的原因及解决方案
数据库·spring boot·sql
不太可爱的叶某人4 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
小光学长6 小时前
基于vue框架的防疫科普网站0838x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
知识分享小能手6 小时前
Vue3 学习教程,从入门到精通,使用 VSCode 开发 Vue3 的详细指南(3)
前端·javascript·vue.js·学习·前端框架·vue·vue3
极限实验室6 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
飞翔的佩奇6 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
pay4fun6 小时前
2048-控制台版本
c++·学习
知识分享小能手8 小时前
Bootstrap 5学习教程,从入门到精通,Bootstrap 5 表单验证语法知识点及案例代码(34)
前端·javascript·学习·typescript·bootstrap·html·css3
float_六七8 小时前
SQL六大核心类别全解析
数据库·sql·oracle