本文主要是介绍Redis相关指令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis数据模型
- 键Key
-
Redis key 值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如”foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效key值
-
Key取值原则
-
键值不需要太长,消耗内存,且在数据中查找这类键值的计算成本较高
-
键值不宜过短,可读性较差
- String
-
- 字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的,这意味着一个Redis字符串能包含任意类型的数据
- 例如: 一张JPEG格式的图片或者一个序列化的Ruby对象
- 一个字符串类型的值最多能存储512M字节的内容
- 设置字符串值
- SET key value [EX seconds] [PX milliseconds] [NX|XX]
- EX 设置过期时间,秒,等同于SETEX key seconds value
- PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
- NX 键不存在,才能设置,等同于SETNX key value
- XX 键存在时,才能设置
- 设置多个键的字符串值
- MSET key value [key value ...]
- 键不存在时,设置字符串值
- MSETNX key value [key value ...]
- 注意:这是原子操作
- 过期
- Redis中可以给Key设置一个生存时间(秒或毫秒),当达到这个时长后,这些键值将会被自动删除
- 设置多少秒或者毫秒后过期
- EXPIRE key seconds
- PEXPIRE key milliseconds
- 设置在指定Unix时间戳过期
- EXPIREAT key timestamp
- PEXPIREAT key milliseconds-timestamp
- 删除过期
- 生存时间
- 查看剩余生存时间
- TTL key
- PTTL key
- key存在但没有设置TTL,返回-1
- key存在,但还在生存期内,返回剩余的秒或者毫秒
- key曾经存在,但已经消亡,返回-2(2.8版本之前返回-1)
- 查找键
- pattern取值
- * 任意长度字符
- ? 任意一个字符
- [] 字符集合,表示可以是集合中的任意一个
- 获取值
- 获取多个给定的键的值
- 返回旧值并设置新值
- GETSET key value
- 如果键不存在,就创建并赋值
- 字符串长度
- 追加字符串
- APPEND key value
- 如果键存在就追加;如果不存在就等同于SET key value
- 获取子字符串
- GETRANGE key start end
- 索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符
- 覆盖字符串
- SETRANGE key offset value
- 位图bitmap
-
位图不是真正的数据类型,它是定义在字符串类型中
-
一个字符串类型的值最多能存储512M字节的内容
-
位上限:2^(9+10+10+3)=2^32b
-
设置某一位上的值
-
SETBIT key offset value
-
offset偏移量,从0开始
-
value不写,默认是0
- 获取某一位上的值
- 返回指定值0或者1在指定区间上第一次出现的位置
- BITPOS key bit [start] [end]
- 统计指定位区间上值为1的个数
- BITCOUNT key [start] [end]
- 从左向右从0开始,从右向左从-1开始,注意官方start、end是位,测试后是字节
- BITCOUNT testkey 0 0表示从索引为0个字节到索引为0个字节,就是第一个字节的统计
- BITCOUNT testkey 0 -1等同于BITCOUNT testkey 、
- 最常用的就是 BITCOUNT testkey
这篇关于Redis相关指令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!