news 2026/7/2 4:42:07

Redis数据类型之String详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis数据类型之String详解

dis存储数据的Value可以是一个String类型数据。String类型的Value是Redis中最基本,最常见的类型。String类型的Value中可以存放任意数据,包括数值型,甚至是二进制的图片、音频、视频、序列化对象等。一个String类型的Value最大是512M大小。
其编码方式主要有三种:

  • int:存整数型
  • embstr:短字符串(默认,≤44 字节)
  • raw:长字符串(>44 字节)

回到顶部

核心命令

Redis基础命令

redis中的基础命令是针对redis中所有数据类型通用的。

KEYS pattern # 查看符合规则的key(生产慎用)
KEYS * # 查看所有key
EXISTS key # 判断key是否存在 1存在 0不存在
DEL key # 删除key
TYPE key # 查看value类型(string/hash/list/set/zset)
EXPIRE key seconds # 设置过期时间(秒)
PEXPIRE key ms # 毫秒级过期
TTL key # 查看剩余过期时间(-1永不过期 -2已过期)
PTTL key # 毫秒级剩余时间
PERSIST key # 移除过期时间,永久保存
RENAME key newkey # 重命名key
MOVE key db # 移动key到指定库
FLUSHDB # 清空当前库,危险命令
FLUSHALL # 清空所有库,危险命令

String类型命令

读写命令
  • 设置key-value
# 语法:SET key value
127.0.0.1:6379> SET name zhangsan
OK
  • 根据key获取value
# 语法:GET key
127.0.0.1:6379> GET name
"zhangsan"
  • 获取旧值并设置新值
# 语法:GETSET key newvalue
127.0.0.1:6379> GETSET name lisi
"zhangsan"
127.0.0.1:6379> GET name
"lisi"
批量读写命令
  • 批量设置
# 语法:MSET key1 value1 key2 value2 key3 value3
127.0.0.1:6379> MSET name1 lisi1 name2 lisi2 name3 lisi3
OK
  • 批量获取
# 语法:MGET key1 key2 key3 ...
127.0.0.1:6379> mget name1 name2 name3
1) "lisi1"
2) "lisi2"
3) "lisi3"
value自增自减

这一批命令只针对value值为int类型的

  • 自增
# 语法:INCR key,自增1
127.0.0.1:6379> SET num 1
OK
127.0.0.1:6379> INCR num
(integer) 2
127.0.0.1:6379> GET num
"2"
# 语法:INCRBY key num,自增指定的数量
127.0.0.1:6379> INCRBY num 4
(integer) 6
127.0.0.1:6379> GET num
"6"
  • 自减
# 语法:DECR key,自减1
127.0.0.1:6379> DECR num
(integer) 5
127.0.0.1:6379> GET num
"5"
# 语法:DECRBY key num,自减指定的数量
127.0.0.1:6379> DECRBY num 4
(integer) 1
127.0.0.1:6379> GET num
"1"
字符串操作
  • 获取字符串长度
# 语法:STRLEN key
127.0.0.1:6379> SET strlen "hello world"
OK
127.0.0.1:6379> STRLEN strlen
(integer) 11
  • 追加字符串
# 语法:APPEND key str
127.0.0.1:6379> APPEND strlen "hello redis"
(integer) 22
127.0.0.1:6379> GET strlen
"hello worldhello redis"
设置过期时间
  • 设置并指定过期秒数
# 语法:SETEX key 60 val
127.0.0.1:6379> SETEX age 60 val
OK
127.0.0.1:6379> TTL age
(integer) 49
  • key不存在才设置(分布式锁)
# 语法:SETNX key val
127.0.0.1:6379> SETNX age 18
(integer) 0
127.0.0.1:6379> GET age
"val"

回到顶部

python操作redis

下载包依赖

pip install redis

示例:

import redis
r = redis.Redis(
host="10.37.97.56",
port=6379,
db=0,
password="123456",
decode_responses=True,
retry_on_timeout=True,
)
# 设置key
r.set("name", "huangSir-devops")
# 获取key
print(r.get("name")) #huangSir-devops
# 删除key
r.delete("name")
print(r.get("name")) #None
# 设置过期时间
r.setex("name",600, "huangSir-devops")
print(r.ttl("name")) #600
# 批量设置
r.mset({'k1': 'v1', 'k2': 'v2', 'k3': 'v3'})
# 批量获取
print(r.mget('k1', 'k2', 'k3'))
# 数值自增
print(r.incr("count")) # 1
print(r.incr("count",5))# 7
# 判断key是否存在
print(r.exists('name')) # 1 存在,0 不存在
# 获取旧值,设置新值
r.set('username', 'old_name')
old_val = r.getset('username', 'new_name')
print(old_val) # old_name
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 4:41:51

鞋材厂专用皮革打印机:适配多样皮革材质,高效搞定鞋面印花定制

一、2026鞋材皮革打印市场:个性化爆发下的购机痛点2026年国内鞋材数码印花市场规模持续扩容,快时尚联名款、小众定制订单带动小批量多款式需求激增,皮革打印机成为鞋材厂转型柔性生产的核心设备。但不少新手购机频频踩坑:打印图案…

作者头像 李华
网站建设 2026/7/2 4:41:08

Claude Code 命令速查与实践手册

、基本模型Claude Code 基本操作:输入:Prompt 文件(--file / stdin)上下文:session(--resume / --continue)执行:单次 / 交互 / 后台输出:文本 / JSON / 流式 JSON / 文…

作者头像 李华
网站建设 2026/7/2 4:40:18

线上与测试环境excel导出列不同

在用户有查看年龄权限时,年龄列有列名但无法展示。线上导出表格为姓名年龄手机号张三13111112323李四14222223434线下导出表格为姓名年龄手机号张三1813111112323李四2014222223434用户无查看年龄权限时,正常屏蔽年龄列线上导出表格为姓名手机号张三1311…

作者头像 李华
网站建设 2026/7/2 4:37:03

Dify知识库数据断裂漏洞:附件ID校验缺失与竞态条件分析

1. 项目概述:一个被忽视的“小”漏洞最近在排查一个线上Dify应用的数据问题时,发现了一个相当隐蔽但后果可能很严重的问题。这个问题源于Dify在处理文件上传和知识库构建时,对附件ID的校验逻辑存在一个潜在的漏洞。简单来说,在某些…

作者头像 李华
网站建设 2026/7/2 4:36:25

Swift并行加密实战:利用GCD与CryptoSwift提升大文件加密性能

1. 项目概述:为什么我们需要并行加密?在移动应用和服务器端开发里,数据安全是底线。无论是用户密码的哈希存储、敏感信息的网络传输,还是本地文件的加密保护,加密算法都是不可或缺的基石。CryptoSwift作为Swift生态中一…

作者头像 李华