①Redis String 字符串类型【命令汇总】

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: ①Redis String 字符串类型【命令汇总】


①Redis String 字符串类型【命令汇总】



命令不区分大小写,而key是区分大小写的


始终实用的帮助命令,不会用就找它:help @类型

help @string
help @list
help @hash


1. set key value 设置指定key的值



set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]

set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]


SET命令有EXPXNXXXKEEPTLL五个可选参数,其中KEEPTLL为6.0版本添加的可选参数,其他为2.6.12版本添加的可选参数。

  • EX seconds:以秒为单位,设置过期时间
  • PX milliseconds:以毫秒为单位,设置过期时间
  • EXAT timestamp:设置以秒为单位的UNIX时间戳所对应的时间为过期时间
  • PXAT milliseconds-timestamp:设置以毫秒为单位的UNIX时间戳所对应的时间为过期时间
  • NX:当键不存在的时候,设置键值
  • XX:当键存在的时候,设置键值
  • KEEPTLL:保存设置前指定键的生存时间
  • GET:返回指定键原本的值,若键不存在时返回nil

SET命令使用EXPXNX参数,效果等同于SETEXPSETEXSETNX命令,根据官方文档描述:SETEXPSETEXSETNX命令未来可能会被淘汰。

EXATPXATGET参数为Redis6.2新增的可选参数。


返回值

  • 设置成功则返回OK
  • 返回nil代表未执行SET命令,如不满足NX、XX条件等情况
  • 若使用SET参数,则返回键原本的值,若键不存在则返回nil


set k1 v1       # 设置键k1值为v1
set k2 v2 ex 10 # 设置键k2值为v2,十秒后过期
ttl k2          # 查看k2的过期时间
# 十秒后,k2过期了...
set k2 v2 px 9000 # 设置键k2值为v2,9000毫秒后过期
# 九秒后,k2又过期了...
set k2 v2 nx    # 当k2不存在时,创建设置键k2值为v2
set k2 v22 xx   # 当k2存在时,设置键k2的值为v22


2. get key 获取指定key的值



get key

get k1 # 获取k1的值
get k2 # 获取k2的值

k3不存在,返回空


3. mset key value 设置多个键值



mset key value [key value ...]


# 设置多个键值:kk1 vv1、kk2 vv2、kk3 vv3
mset kk1 vv1 kk2 vv2 kk3 vv3


4. mget key 获取多个指定键的值



mget key [key ...]


# 一次获取多个键的值
mget k1 k2 kk1 kk2 kk3


5. msetnx key value 设置多个键值(键不存在为前提)


msetnx key value [key value ...]


# 键a不存在,创建成功
msetnx a a
# 键a存在,键b不存在,创建不成功
msetnx a a b b
# !多个键值中,只要出现不符合条件的键值,msetnx命令就不会执行!


6. getrange 获取指定范围内的值


getrange key start end


# 获取k1键所有下标范围内的值
getrange k1 0 -1
# 获取k1键下标0-3范围内的值
getrange k1 0 3


7. setrange 设置指定范围的值


setrange key offset value


# 设置k1键从下标0开始区间范围的值,返回值是当前k1键的值的长度
setrange k1 0 xxxx


8. incr key 递增数字


一定要是数字才能进行加减


incr key


# 递增K2键的值
incr k2


9. decr key 递减数字


一定要是数字才能进行加减


decr key


# 递减K2键的值
decr k2


10.incrby 增加指定的整数


一定要是数字才能进行加减


incrby key decrement


# 为k2键的值增加90
incrby k2 90


11.decrby 减去指定的整数


一定要是数字才能进行加减


decrby key decrement


# 为k2键的值减去100
decrby k2 100


12. strlen key 获取指定键的值长度(字符串长度)


strlen key


# 获取k1键的值的字符串长度
strlen k1
strlen k2
strlen kk1
strlen kk2
strlen kk3


13. append 内容追加


append key value


#向k1键的值最佳内容"ooooo"
append k1 ooooo


14. setex 设置带过期时间的key


setex key seconds value


# 设置键值对 k3 v3,过期时间为10秒
setex k3 10 v3



15. setnx 设置指定key的值(key不存在为前提)


setnx key value


# key不存在时,创建键值对,返回成功的个数
 setnx k3 v3



16. getset 设置指定key的值并返回旧值


getset key value


getset k1 oo29oo




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
8天前
|
存储 SQL 分布式计算
MaxCompute产品使用合集之表中的某个列设置为string类型,并且超过了8M,该如何处理
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
缓存 NoSQL Redis
Redis深度解析:核心数据类型之string
Redis 数据类型包括String、Hash、List、Set和Sorted Set。对于String类型的主要操作, 此外,还有通用的Key操作。
|
22天前
|
Java
Redis19----RedisTemplate操作Hash类型
Redis19----RedisTemplate操作Hash类型
|
22天前
|
NoSQL Redis
Redis11-----Sortedset类型,SortedSet底层是由数据树实现的,SortedSet删除同学,获取Amy同学分数,获取Rose同学排名,查询80分以下的学生,给Amy同学加2分
Redis11-----Sortedset类型,SortedSet底层是由数据树实现的,SortedSet删除同学,获取Amy同学分数,获取Rose同学排名,查询80分以下的学生,给Amy同学加2分
|
22天前
|
存储 NoSQL Java
Redis10------Set类型,存在着无序的特征存储的顺序和插入的顺序是无关的,set集合的一大特点是不可重复,在redis中支持交集插集等特殊功能,好友列表,共同关注等等
Redis10------Set类型,存在着无序的特征存储的顺序和插入的顺序是无关的,set集合的一大特点是不可重复,在redis中支持交集插集等特殊功能,好友列表,共同关注等等
|
22天前
|
NoSQL Java Redis
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
|
22天前
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
|
1月前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`"123abc"`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
25天前
|
安全 Java
Java基础之StringBuffer
【7月更文挑战第1天】 Java中的`StringBuffer`是线程安全的字符串操作类,适合多线程环境,而`StringBuilder`非线程安全,速度更快,适用于单线程。两者提供`append()`、`insert()`、`delete()`等方法修改字符串,避免了频繁创建新对象的性能问题。在不需要线程安全时,推荐使用`StringBuilder`以提高效率。
16 1