ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## Redis 数据类型介绍: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 Redis 支持多种数据类型,如:字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询; 下面我们就Reids 不同的数据类型的使用场景和特点进行分开介绍说明; ### Redis key 命名规则 Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,也可以用空字符串作为Redis的key; * key 值的长度不易过长,过长不仅消耗内存,而且在数据中查找这类键值的计算成本很高,建议不超过1024个字节; * key 的值如果特别的短,也不是太好,例如,用“p:100:d” 来代替“plan:100:data” 这样的写法也没什么问题,但是在易读性上不如“plan:100:data” 易读性高,如果在一个Redis 集群中有多个业务线在使用一个公共的Redis 建议用 “web:plan:100:data”、或者"web-plan:100:data" 来进行命名; * 最后,建议大家在对key 进行命名的时候遵循两个原则:1、易读性;2、可维护性; ### Redis 字符串 Strings Redis string 类似是Redis 基本的数据类型,基本的操作命令是:set key value ,get key value ;下面是 redis-cli 命令行模式下操作命令: ``` 127.0.0.1:6379> set crm:customer:1000:data 301000 OK 127.0.0.1:6379> get crm:customer:1000:data "301000" ``` Redis 的 字符串类似的value 值值可以是任何种类的字符串(包括二进制数据),但是单个值的存储长度不能超过 512MB; set 命令 相关参数介绍: * SET key value [EX seconds] [PX milliseconds ] [NX|XX ] * 如果 key 已经持有其他值, SET 就覆写旧值,无视类型。 可选参数 从 Redis 2.6.12 版本开始, SET 命令的行为可以通过一系列参数来修改: * EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。 * PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。 * NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。 * XX :只在键已经存在时,才对键进行设置操作。 ### Redis 字符串操作命令 set 操作的命令实例如下: ``` 127.0.0.1:6379> set abcd 'hello word' # set abcd 内容为hello word OK 127.0.0.1:6379> get abcd # get abcd 的 value "hello word" 127.0.0.1:6379> set abcd 'hello word abc' EX 1 # 设置abcd key 的过期时间为 1秒 OK 127.0.0.1:6379> set abcd 'hello word' PX 2000 # 设置abcd key 的过期时间为2000毫秒 = 2秒 OK 127.0.0.1:6379> get abcd # get 获取abcd 的值 为nil 空 (nil) 127.0.0.1:6379> set abcd 'hello word php' nx # 只在键不存在时,才对键进行设置操作,如果健值存在设置不成功,反之成功; (nil) 127.0.0.1:6379> set abcd 'hello word php www' xx # 只在键已经存在时,才对键进行设置操作。操作的健值必须存在 才操作成功 OK ``` ### Redis String 数值类型递增、递减操作