前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2021年12月 Redis数据库-操作命令

【愚公系列】2021年12月 Redis数据库-操作命令

作者头像
愚公搬代码
发布2022-12-01 09:54:03
3950
发布2022-12-01 09:54:03
举报
文章被收录于专栏:历史专栏

文章目录


一、Redis数据库相关资源

1.重要文档

2.数据结构

  • redis是key-value的数据结构,每条数据都是⼀个键值对
  • 键的类型是字符串
  • 注意:键不能重复

值的类型分为五种:

  • 字符串string
  • 哈希hash
  • 列表list
  • 集合set
  • 有序集合zset

3.数据操作行为

  • 保存
  • 修改
  • 获取
  • 删除

点击中⽂官⽹查看命令⽂档http://redis.cn/commands.html

二、string类型

  • 字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

1.保存

如果设置的键不存在则为添加,如果设置的键已经存在则修改

  • 设置键值
代码语言:javascript
复制
set key value
  • 例1:设置键为name值为itcast的数据
代码语言:javascript
复制
set name itcast
  • 设置键值及过期时间,以秒为单位
代码语言:javascript
复制
setex key seconds value
  • 例2:设置键为aa值为aa过期时间为3秒的数据
代码语言:javascript
复制
setex aa 3 aa
  • 设置多个键值
代码语言:javascript
复制
mset key1 value1 key2 value2 ...
  • 例3:设置键为a1值为python、键为a2值为java、键为a3值为c
代码语言:javascript
复制
mset a1 python a2 java a3 c
  • 追加值
代码语言:javascript
复制
append key value
  • 例4:向键为a1中追加值haha
代码语言:javascript
复制
append a1 haha

2.获取

  • 获取:根据键获取值,如果不存在此键则返回nil
代码语言:javascript
复制
get key
  • 例5:获取键name的值
代码语言:javascript
复制
get name
  • 根据多个键获取多个值
代码语言:javascript
复制
mget key1 key2 ...
  • 例6:获取键a1、a2、a3的值
代码语言:javascript
复制
mget a1 a2 a3

3.删除

  • 查找键,参数⽀持正则表达式
代码语言:javascript
复制
keys pattern
  • 例1:查看所有键
代码语言:javascript
复制
keys *
  • 例2:查看名称中包含a的键
代码语言:javascript
复制
keys a*
  • 判断键是否存在,如果存在返回1,不存在返回0
代码语言:javascript
复制
exists key1
  • 例3:判断键a1是否存在
代码语言:javascript
复制
exists a1
  • 查看键对应的value的类型
代码语言:javascript
复制
type key
  • 例4:查看键a1的值类型,为redis⽀持的五种类型中的⼀种
代码语言:javascript
复制
type a1
  • 删除键及对应的值
代码语言:javascript
复制
del key1 key2 ...
  • 例5:删除键a2、a3
代码语言:javascript
复制
del a2 a3
  • 设置过期时间,以秒为单位
  • 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
代码语言:javascript
复制
expire key seconds
  • 例6:设置键a1的过期时间为3秒
代码语言:javascript
复制
expire a1 3
  • 查看有效时间,以秒为单位
代码语言:javascript
复制
ttl key
  • 例7:查看键bb的有效时间
代码语言:javascript
复制
ttl bb

三、hash类型

增加、修改

  • 设置单个属性
代码语言:javascript
复制
hset key field value
  • 例1:设置键 user的属性name为itheima
代码语言:javascript
复制
hset user name itheima
  • 设置多个属性
代码语言:javascript
复制
hmset key field1 value1 field2 value2 ...
  • 例2:设置键u2的属性name为itcast、属性age为11
代码语言:javascript
复制
hmset u2 name itcast age 11

获取

  • 获取指定键所有的属性
代码语言:javascript
复制
hkeys key
  • 例3:获取键u2的所有属性

hkeys u2

  • 获取⼀个属性的值
代码语言:javascript
复制
hget key field
  • 例4:获取键u2属性name的值
代码语言:javascript
复制
hget u2 name
  • 获取多个属性的值
代码语言:javascript
复制
hmget key field1 field2 ...
  • 例5:获取键u2属性name、age的值
代码语言:javascript
复制
hmget u2 name age
  • 获取所有属性的值
代码语言:javascript
复制
hvals key
  • 例6:获取键u2所有属性的值
代码语言:javascript
复制
hvals u2

删除

  • 删除整个hash键及值,使⽤del命令
  • 删除属性,属性对应的值会被⼀起删除
代码语言:javascript
复制
hdel key field1 field2 ...
  • 例7:删除键u2的属性age
代码语言:javascript
复制
hdel u2 age

可能出现的错误

原因:

  • 强制关闭Redis快照导致不能持久化。

解决方案:

  • 运行config set stop-writes-on-bgsave-error no 命令后,关闭配置项stop-writes-on-bgsave-error解决该问题。

四、list类型

增加

  • 在左侧插⼊数据
代码语言:javascript
复制
lpush key value1 value2 ...
  • 例1:从键为a1的列表左侧加⼊数据a 、 b 、c
代码语言:javascript
复制
lpush a1 a b c
  • 在右侧插⼊数据
代码语言:javascript
复制
rpush key value1 value2 ...
  • 例2:从键为a1的列表右侧加⼊数据0、1
代码语言:javascript
复制
rpush a1 0 1
  • 在指定元素的前或后插⼊新元素
代码语言:javascript
复制
linsert key before或after 现有元素 新元素
  • 例3:在键为a1的列表中元素b前加⼊3
代码语言:javascript
复制
linsert a1 before b 3

获取

  • 返回列表⾥指定范围内的元素
代码语言:javascript
复制
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
lrange key start stop
  • 例4:获取键为a1的列表所有元素
代码语言:javascript
复制
lrange a1 0 -1

设置指定索引位置的元素值

  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
代码语言:javascript
复制
lset key index value
  • 例5:修改键为a1的列表中下标为1的元素值为z
代码语言:javascript
复制
lset a 1 z

删除

  • 删除指定元素
代码语言:javascript
复制
将列表中前count次出现的值为value的元素移除
count > 0: 从头往尾移除
count < 0: 从尾往头移除
count = 0: 移除所有
lrem key count value
  • 例6.1:向列表a2中加⼊元素a、b、a、b、a、b
代码语言:javascript
复制
lpush a2 a b a b a b
  • 例6.2:从a2列表右侧开始删除2个b
代码语言:javascript
复制
lrem a2 -2 b
  • 例6.3:查看列表a2的所有元素
代码语言:javascript
复制
lrange a2 0 -1

五、set类型

增加

  • 添加元素
代码语言:javascript
复制
sadd key member1 member2 ...
  • 例1:向键a3的集合中添加元素zhangsan、lisi、wangwu
代码语言:javascript
复制
sadd a3 zhangsan sili wangwu

获取

  • 返回所有的元素
代码语言:javascript
复制
smembers key
  • 例2:获取键a3的集合中所有元素
代码语言:javascript
复制
smembers a3

删除

  • 删除指定元素
代码语言:javascript
复制
srem key
  • 例3:删除键a3的集合中元素wangwu
代码语言:javascript
复制
srem a3 wangwu

六、zset类型

增加

  • 添加
代码语言:javascript
复制
zadd key score1 member1 score2 member2 ...
  • 例1:向键a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan,权重分别为4、5、6、3
代码语言:javascript
复制
zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

获取

  • 返回指定范围内的元素
  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
代码语言:javascript
复制
zrange key start stop
  • 例2:获取键a4的集合中所有元素
代码语言:javascript
复制
zrange a4 0 -1
  • 返回score值在min和max之间的成员
代码语言:javascript
复制
zrangebyscore key min max
  • 例3:获取键a4的集合中权限值在5和6之间的成员
代码语言:javascript
复制
zrangebyscore a4 5 6
  • 返回成员member的score值
代码语言:javascript
复制
zscore key member
  • 例4:获取键a4的集合中元素zhangsan的权重
代码语言:javascript
复制
zscore a4 zhangsan

删除

  • 删除指定元素
代码语言:javascript
复制
zrem key member1 member2 ...
  • 例5:删除集合a4中元素zhangsan
代码语言:javascript
复制
zrem a4 zhangsan
  • 删除权重在指定范围的元素
代码语言:javascript
复制
zremrangebyscore key min max
  • 例6:删除集合a4中权限在5、6之间的元素
代码语言:javascript
复制
zremrangebyscore a4 5 6
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Redis数据库相关资源
    • 1.重要文档
      • 2.数据结构
        • 3.数据操作行为
        • 二、string类型
          • 1.保存
            • 2.获取
              • 3.删除
              • 三、hash类型
              • 四、list类型
              • 五、set类型
              • 六、zset类型
              相关产品与服务
              云数据库 Redis®
              腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档