Redis数据结构:字符串
安装
下载安装包
官网下载 https://redis.io/download/
Linux下安装
解压压缩包到安装目录
编译安装
make
make PREFIX=/opt/redis install
修改配置文件redis.conf
vi redis.conf
conf修改daemonize yes
基本使用
- 后台启动
./bin/redis-server ./redis.conf - 客户端启动
./bin/redis-cli - ping测试
ping [message]
数据结构
- 字符串
字符串
- 给字符串键设置值
1.set命令 格式:set key value [XX|NX]
成功创建字符串键后将返回OK作为结果。set key value
- NX选项作用为:set命令只会在键没有值的情况下执行设置操作并返回OK表示设置成功,否则返回nil表示设置失败。
set key value NX
- XX选项作用为:set命令只会在键有值的情况下执行设置操作并返回OK表示设置成功,否则返回nil表示设置失败。
set key value XX
- 2.getset命令 格式:getset key value
获取旧值并设置新值,若被设置的键并不存在于数据库,则返回空值nil作为旧值。getset key value
- 3.mset命令 格式:mset key value [key value …]
mset命令可以一次为多个字符串键设置值,成功创建字符串键后将返回OK作为结果。mset key value [key value ...]
- 4.msetnx命令 格式:msetnx key value [key value …]
msetnx命令与mset的主要区别在与msetnx只会在所有给定键都不存在的情况下对键进行设置,而不会像mset直接覆盖键已有值;若给定键当中有一个键已经有值,则msetnx放弃对所有给定键的设置操作。
执行设置操作成功返回1,否则返回0。msetnx key value [key value ...]
- 注意:
Redis数据库是以无序的方式存放数据库键的,一个新加入的键可能出现在数据库的任何位置。 - 获取值
1.get命令 格式:get key
若给定的字符串键在数据库中并没有关联值,将返回一个空值nil。get key
- 2.mget命令 格式:mget key [key …]
mget返回一个列表作为结果。列表按照用户执行命令使给定键的顺序排列键值。若给定的字符串键在数据库中并没有关联值,将返回一个空值nil。mget key [key ...]
- 获取字符串值的字节长度
1.strlen命令 格式:strlen key
对于不存在的键将返回0。strlen key
- 字符串值的索引
每个字符串都是由一系列连续的字节组成,所以每个字节都有相对应索引。Redis为字符串键提供了索引操作命令,允许用户通过正数索引或者负数索引对值的某个字节或某部分进行处理。
字符串值的正数索引以0开始从开头向结尾递增;
字符串值的负数索引以-1开始从结尾向开头递减。
1.getrange命令 格式:getrange key start end
获取从start索引开始到end索引结束的字符串值内容,包括start和end索引上的值,取闭区间索引范围。getrange key start end
- 2.setrange命令 格式:setrange key index substitute
将值从索引index开始的部分替换为指定的内容,被替换内容长度取决于新内容长度。执行完成后会返回字符串值当前长度。setrange key index substitute
- 注意:
1)自动扩展被修改的字符串
当给定的新内容比被替换的内容更长时,setrange命令会自动扩展被修改的字符串值,确保内容正常写入。
2)填充空字节
当给定的index索引超过值长度时,字符串值末尾到index-1之间的部分将使用空字节填充,即二进制位设置为0。 - 追加内容
1.append命令 格式:append key suffix
将给定内容追加到已有值的末尾,执行完成后会返回字符串值当前长度。若键不存在则初始化值为空字符串""然后追加,相当于set命令效果。append key suffix
- 数字计算
当字符串键存储的值能被Redis解释为整数时,就可执行加法或减法操作。
1.incrby命令 格式:incrby key num
用于为整数值加上指定的整数,返回加法操作之后的值。incrby key num
- 2.decrby命令 格式:decrby key num
用于为整数值减去指定的整数,返回减法法操作之后的值。decrby key num
- 3.incr、decr命令 格式:decr key、decr key
加1、减1操作。
4.incrbyfloat命令 格式:incrbyfloat key num
用于执行浮点数加法操作,把一个浮点数增量加到键值上,返回加法操作之后的值。incrbyfloat key num
- 注意:
1)incrby/decrby命令,当值不能被Redis解释为整数时将返回error - 2)键不存在时,会先初始化为0,然后执行加减操作
- 3)使用incrbyfloat处理浮点数时最多只保留小数点后17位,四舍五入
- 常见用法
1.缓存
2.锁
3.ID生成器
4.计数器