Redis的键都是字符串类型,而其他几种数据结构都是在字符串类型基础上构建的。
所谓的字符串类型的值,实际上可以是字符串(简单的字符串,复杂的字符串--json、xml等),数字(整数,浮点数),二进制(图片、音频,视频),但是其值最大不能超过512MB
常用命令:
set key value [ex seconds] [px milliseconds] [nx|xx]
set 命令的几个选项:
--ex seconds为键设置秒级过期时间 ===等同命令=== setex key seconds value
--px millionseconds为键设置毫秒级过期时间
--nx键必须不存在,才可以设置成功,用于添加 ===等同命令=== setnx key value可以作为分布式锁的一种实现(Redis官方给出使用setnx实现分布式锁的方法 https://redis.io/topics/distlock)
--xx 键必须存在,才可以设置成功,用于更新
批量操作 ---优选,减少网络消耗
mset key1 value1 key2 value2 key3 value3
mget key1 key2 key3
incr key用于对值做自增操,返回结果三种情况
---值不是正数,返回错误
---值是正数,返回自增后的结果
---键不存在,按照值为0自增,返回结果为1
类似命令
---自减 decr key
---自增指定数字 incrby key num
---自减指定数字 decrby key num
---自增浮点数 incrfloat key num
--------------------------------------不常用命令
--向字符串val末尾追加值 append key value
--获取字符串val长度 strlen key
--设置并返回key的原value值 getset key value
--设置指定位置的字符 setrange key index value
--获取部分字符串 getrange key startIndex endIndex
----------------------------------------内部编码
字符串类型内部编码有3种
---int:8个字节的长整型
---embstr:小于等于39个字节的字符串
---raw:大于39字节的字符串
Redis会根据当前值类型和长度决定使用哪种内部编码实现
object encoding key
--------------------运用
---计数
---共享session,将登陆信息保存在Redis里
---限速(通过键过期,计数,存在)保证,一段时间内的访问次数