字符串类型的介绍
字符串类型是Redis的最基本,使用最多的数据类型,Redis中所有键都必须是字符串。它的值其实也是字符串
字符串类型实际上可以是字符串(简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频)),
但最大不能超过512M。
字符串类型键值对存储形式
使用场景
- 缓存功能:这是字符串类型最经典的应用,用户访问数据库获取信息,可能访问的是一样的数据,如果每次请求都访问一次数据库,请求一多就会增加后台数据库的压力,为减少后端的压力,可以把这些相同的数据暂时放在Redis中,每次访问相同的数据时就从Redis缓存中读取。这样就降低了后端的压力
- 计数功能:如一个视频的播放次数,就会使用Redis来计数,Redis可以是实现快速计数,查询缓存的功能。
- 共享session:后台一般会有多个服务器,通过nginx将请求按算法分配到服务器,密码会放在session作用域中,用户登录一个网站后,在使用的过程中请求可能会发送到不同的服务器,导致session失效,那么用户就不得不重新登录,体验就会非常差。为避免这个问题,Redis可以将session集中起来统一管理,只要保证在这个过程中Redis的高可用和扩展性,每次获取用户的登录数据都直接从Redis中获取。
- 限速功能:比如在登录一个网站的时候要求输入一个验证码,为了避免短信接口被频繁访问,会加上一个时长,限制获取验证码。
字符串类型相关命令
关于命令的学习推荐查询看这个网站http://www.redis.net.cn/order/
或者:http://redisdoc.com/
set name cxx
get name
getrange name 0 -1 字符串分段 0 -1是全部 0 -2 ==n-1
getset name new_cxx 设置值,返回旧值
mset key1 key2 批量设置
mget key1 key2 批量获取
setnx key value 不存在就插入(not exists)
setrange key index value 从index开始替换value
incr age 递增
incrby age 10 递增
decr age 递减
decrby age 10 递减
incrbyfloat 增减浮点数
append 追加
strlen 长度
object encoding key 得到key 的类型 string里面有三种编码
int 用于能够副作用64位有符号整数表示的字符串
embstr 用于长度小于或等于44字节 Redis3.x中是39字节,这种类型的编码在内存使用时性能更好
raw 用于长度大于44字节的