一马平川
不积跬步无以至千里,后继才能薄发

Redis学习笔记(二):redis的数据结构(一)字符串

2020年01月25日
0
未分类

前言

上一节中详细解析的什么是Redis,以及Redis能够解决什么问题,不能解决什么问题。非常好,我们终于可真正开始学习Redis了!
本篇将会解析Redis数据结构中字符串的命令适用场景,以及内部编码

redis的数据结构

string(字符串)

redis的字符串是什么?

以单个字符串存储的数据结构,是redis其他数据结构的基础。在redis中,字符串会有多种存储形式,如数字类型为整数,并小于2^63 -1时,会以int型存储,占8Byte;大于2^63-1时会转为另一种编码存储,在稍后的内部编码会做解释。

常用命令

设置值
  • 命令
1
set key value [ex seconds] [px milliseconds] [nx|xx]
  • 参数
参数 作用 例子
ex 设置过期时间,单位second set site chingk.com ex 10
nx 仅当键不存在时,设置成功 set site chingk.com nx
xx 仅当键存在时,设置成功(更新) set site chingk.com xx
获取值
1
get key
批量设置值
1
mset key value [key value...]
批量获取值
1
mget key [key...]
计数
命令 作用 例子
incr key int型自增1 incr score
decr key int型自减1 decr score
incrby key increment int型自增 incrby score 10
decrby key decrement int型自减 decrby score 10
incrbyfloat key increment 浮点型自增 incrbyfloat float1 1.12

不常用命令

命令 作用 例子
strlen key 字符串长度 strlen str1
append key value 追加值 append site chingk.com
getset key value 设置并返回原值 getset site chingk.com
setrange key offeset value 设置指定位置的字符 setrange site 2 chingk.com

内部编码

编码 内容 大小
int 整数型,大于-2^63,小于2^63-1 8Byte
embstr 字符型,小于等于39字节的字符串 >=1Byte,<=39Byte
raw 字符型,大于39字节的字符串 >39Byte

使用场景

redis由于使用单线程模型,不会出现aba问题,所以字符串适合计数,此外redis字符串类型常用的场景是缓存,一般缓存的格式业务名:对象名:id:[属性]

如果喜欢这篇文章,可以给作者评个份哦~

原文声明: "转载本站文章请注明作者和出处Nothinglin ,请勿用于任何商业用途"

公众号:苦逼的学生仔