Redis数据类型之String详解

📅 2026/7/2 4:42:12
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 * # 查看所有keyEXISTS key # 判断key是否存在 1存在 0不存在DEL key # 删除keyTYPE key # 查看value类型string/hash/list/set/zsetEXPIRE key seconds # 设置过期时间秒PEXPIRE key ms # 毫秒级过期TTL key # 查看剩余过期时间-1永不过期 -2已过期PTTL key # 毫秒级剩余时间PERSIST key # 移除过期时间永久保存RENAME key newkey # 重命名keyMOVE key db # 移动key到指定库FLUSHDB # 清空当前库危险命令FLUSHALL # 清空所有库,危险命令String类型命令读写命令设置key-value# 语法SET key value127.0.0.1:6379 SET name zhangsanOK根据key获取value# 语法GET key127.0.0.1:6379 GET namezhangsan获取旧值并设置新值# 语法GETSET key newvalue127.0.0.1:6379 GETSET name lisizhangsan127.0.0.1:6379 GET namelisi批量读写命令批量设置# 语法MSET key1 value1 key2 value2 key3 value3127.0.0.1:6379 MSET name1 lisi1 name2 lisi2 name3 lisi3OK批量获取# 语法MGET key1 key2 key3 ...127.0.0.1:6379 mget name1 name2 name31) lisi12) lisi23) lisi3value自增自减这一批命令只针对value值为int类型的自增# 语法INCR key自增1127.0.0.1:6379 SET num 1OK127.0.0.1:6379 INCR num(integer) 2127.0.0.1:6379 GET num2# 语法INCRBY key num自增指定的数量127.0.0.1:6379 INCRBY num 4(integer) 6127.0.0.1:6379 GET num6自减# 语法DECR key自减1127.0.0.1:6379 DECR num(integer) 5127.0.0.1:6379 GET num5# 语法DECRBY key num自减指定的数量127.0.0.1:6379 DECRBY num 4(integer) 1127.0.0.1:6379 GET num1字符串操作获取字符串长度# 语法STRLEN key127.0.0.1:6379 SET strlen hello worldOK127.0.0.1:6379 STRLEN strlen(integer) 11追加字符串# 语法APPEND key str127.0.0.1:6379 APPEND strlen hello redis(integer) 22127.0.0.1:6379 GET strlenhello worldhello redis设置过期时间设置并指定过期秒数# 语法SETEX key 60 val127.0.0.1:6379 SETEX age 60 valOK127.0.0.1:6379 TTL age(integer) 49key不存在才设置分布式锁# 语法SETNX key val127.0.0.1:6379 SETNX age 18(integer) 0127.0.0.1:6379 GET ageval回到顶部python操作redis下载包依赖pip install redis示例import redisr redis.Redis(host10.37.97.56,port6379,db0,password123456,decode_responsesTrue,retry_on_timeoutTrue,)# 设置keyr.set(name, huangSir-devops)# 获取keyprint(r.get(name)) #huangSir-devops# 删除keyr.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)) # 1print(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