Redis基本使用-字符串数据类型操作

介绍

Redis中最简单的数据类型,可以存储文字、数字、浮点数,还可以进行二进制存储。本文就此进行简要记录,如果不对,还请斧正。

基本操作

设置值

SET KEY VLAUE

在这里插入图片描述
在一个数据库中的值只会有一个,再次设置会覆盖原来的值。
可以使用help命令帮助我们使用
在这里插入图片描述
在这里插入图片描述

设置键限制

SET key value XX #键不存在不能设置
SET key value NX #键不存在才能设置

在这里插入图片描述
在这里插入图片描述

键的过期

SET key value [expiration EX seconds|PX milliseconds] [NX|XX]

EX 代表超时秒数
PX 代表超时毫秒
在这里插入图片描述
我们可以使用Redis来缓存一些经常会被用到或者需要耗费大量资源的内容,通过这些放到redis中(或者说放到内存中),程序可以以极快的速度取到这些内容。
设置多个值MSET key value[key1 value1...]、获取多个值MGET key1 key2
在这里插入图片描述

键的命名

通常使用::来区分层级
MSET zhangshan::email zhangshan@qq.com zhangshan::age 16 zhangshan::location shanghai
其实/或者.或者-都可以

MSETNX的原子性

MSET具有原子性,要么都设置成功,要么都不成功
可以使用keys * 来查询所有的key
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GETSET key new-value

获取旧的值设置新的值
在这里插入图片描述

APPEND key value

将value追加到key后面
在这里插入图片描述

STRLEN key

返回字符串长度
在这里插入图片描述

字符串索引

从左到右,从0开始;从右到左,从-1开始
在这里插入图片描述

替换

SETRANGE key index value

在这里插入图片描述
在这里插入图片描述

GETRANG key startIndex endIndex

在这里插入图片描述
获取所有长度获取0到-1即可
在这里插入图片描述

对数字的操作

在这里插入图片描述
对于键是字符串,值是数字的,我们可以使用INCRBY和DECRBY来进行增加或者减少
默认值是0
在这里插入图片描述
在这里插入图片描述

浮点数

操作使用INCRBYFLOAT key floatValue,但是没对应的DECRBY,使用负数
在这里插入图片描述
也可以使用APPEND、STRLEN、STRANGE和GETRANGE,redis会将数字先转换为字符串然后执行操作。
在这里插入图片描述

键Key

Redis key值是二进制安全的,就是说可以用任何二进制的值做为key值。如简单的字符串,jpeg文件。空字符串也是有效的key值。

Key的取值原则

1.不需要太长,消耗内存,且查找此类键值对消耗计算资源较高
2.不宜太短,可读性差

String

字符串是最基本的Redis值类型。Redis字符串是二进制安全的,这就意味着一个redis字符串能包含任意类型的数据,如一个JPEG格式的图片或者一个序列化的Ruby对象
一个字符串类型的值最多能存储512M字节的数据。

清空整个数据库

FLUSHDB

在这里插入图片描述

过期命令

Redis给key设置一个生存时间(秒或毫秒),当到达这个时间之后就会自动删除
设置多少秒或者多少毫秒过期

EXPIRE key seconds
PEXPIRE key milliseconds

设置在指定的Unix时间戳过期

EXPIREAT key timestamp
PEXPIREAT key milliseconds-timestamp

删除过期

PERSIST key

生存时间
TTL(Time To Live),key的存活时间
查看剩余的存活时间

TTL key
PTTL key

key存在但是没有设置TTL,返回-1
key曾经存在,但已经消亡,返回-2
在这里插入图片描述

查找键

KEYS pattern

pattern取值
*任意长度的字符
?任意一个字符
[]字符集合,标识可以是集合中的任意一个

键类型

TYPE key

键是否存在

EXISTS key

键重命名

RENAME key newkey
REBANENX key newkey

键删除

DEL key[key...]

获取值

GET key

获取多个给定键的值

MGET key[key...]

返回旧值并设置新值

GETSET key value

如果键不存在就创建并赋值
字符串长度

STRLEN key

追加字符串

APPEND key value

如果键存在就追加;如果不存在就等同于SET key value
获取子字符串

GETRANGE key start end

索引值从0开始,负数标识字符串从右向左数。-1是最后一个字符
覆盖字符串

SETRANGE key offset value

步长1的增减

INCR key
DECR key

字符串值会被解释成64位有符号的十进制数来操作,结果依然转成字符串
步长增减

INCRBY key decrement
DECR key decrement

字符串值会被解释成64位有符号的十进制数来操作,结果依然转成字符串
位图bitmap
位图不是真正的数据类型,他是定义在字符串中的
一个字符串类型的值最多能存储512MB字节内容
位上限:2(9+10+10+3)=232b
设置某一位上的值

SETBIT key offset value

offset偏移量,从0开始
获取某一位上的值

GETBIT key offset

返回指定值0或者1在指定区间上的第一次出现的位置

BITPOS key bit [start] [end]

在这里插入图片描述
ab是存储为
在这里插入图片描述
使用SETBIT将’a’修改成‘b’
在这里插入图片描述
对于中文
在这里插入图片描述

位操作

对一个或多个保存二进制的字符串key进行位元操作,并将结果保存在destkey上
operation可以是AND、OR、NOT、XOR 这四种操作中的任意一种
BITOP AND destkey key [key....]对一个或多个key求逻辑与,并将结果保存在destkey中
除了NOT操作外其他操作都可以接受一个或多个key作为输入
当BITOP处理不同长度的字符串时,较短的那个字符串缺少的部分会被看做0
空的key也被看做是包含0的字符串序列
统计指定位区间上为1的个数

BITCOUNT key [start] [end]

从左到右,从0开始,从右到左-1开始
BIYCOUNT testkey 0 0表示从索引为0的字节,就是第一个字节的统计
BITCOUNT teskey 0 -1等同于BITCOUNT testkey
在这里插入图片描述
登录不同的库

redis-cli -n 0

清除当前库数据

FLUSHDB

清除所有库中数据

FLUSHALL

模拟场景

网站用户的上线次数统计(活跃用户)
用户ID为key,天为offerset,上线设置为1
ID为500的用户,第一天上线、第三十天上线

在这里插入图片描述
按天统计网站活跃用户
天作为key,用户id作为offset,上线设置为1
求一段时间内活跃的用户

在这里插入图片描述
求四月份的活跃用户
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值