0.1、Redis学习-字符串类型及主要命令行

前言

体能状态先于精神状态,习惯先于决心,聚焦先于喜好。

Redis 官方完整的命令行文档

https://redis.io/commands

本文实验 Redis 版本为3.2.100

在Redis 2.6版本及之前,有些命令是不被支持的,建议读者安装2.6之后的版本。
命令行中 key 表示 key的name,在实际使用中对应 key的名字。

[] 表示被其包括的命令可有可无。
命令行中 value 存储的值 。
对于增、减操作,key不存在于 Redis 时,默认创建一个value为 0 的 key。
append 命令,key不存在于 Redis 时,默认创建一个空串。
Redis 计数默认从左开始,以0为基数。

Redis 字符串类型简介

Redis 字符串可以存储三种类型的数值: 字节串(byte string)、整形、浮点型
可以对字符串进行 append 操作、截取、替换等操作
可以对整形、浮点型进行自增、自减、浮点转整形等操作
Redis 支持将字符串看做是二进制位串按照二进制位进行处理。

二进制字符串

以下内容来自百度百科-二进制字符串
与字符串一样,二进制字符串也是一个字节序列。
二进制字符串类型有BIT、BLOB、BINARY和VARBINARY。
二进制字符串和普通字符串的区别有两个:首先,二进制字符串完全可以存储字节零值; 第二,对二进制字符串的处理实际上就是处理字节。简单地说,二进制字符串适用于存储那些程序员认为是“原始字节”的数据,比如图片内容,而字符串则适合存储文本。

常用命令行
字符串命令的 存、取、删除

分别对应 set key value、get key、del key

127.0.0.1:6379> set name wj
OK
127.0.0.1:6379> get name
"wj"
127.0.0.1:6379> del name
(integer) 1
Redis 中自增、自减命令
INCR key 自增1
127.0.0.1:6379> incr number
(integer) 1
DECR key 自减1
127.0.0.1:6379> decr num2
(integer) -1
INCRBY key amount 自增amount
127.0.0.1:6379> incrby num3 10
(integer) 10
DECRBY key amount 自减amount
127.0.0.1:6379> decrby num4 10
(integer) -10
INCRBYFLOAT key amount 自增浮点数值amount

需要使用2位小数,并且在最大值范围内,否则会存在精度问题

127.0.0.1:6379> incrbyfloat num5 11.2
"11.199999999999999"
Redis 处理子串
APPEND key value 将value追加到末尾

如果key尚不存在会被初始化

127.0.0.1:6379> append n1 123
(integer) 3
127.0.0.1:6379> append n1 4456
(integer) 7
127.0.0.1:6379> get n1
"1234456"
GETRANGE key start end 对字符串进行截取

从0开始计数
start是开始序数,end是结束位数
start和end都被包含在内
Redis 2.6之前被称为 SUBSTR,建议使用 GETRANGE

127.0.0.1:6379> get n1
"1234456"
127.0.0.1:6379> getrange n1 2 5
"3445"
SETRANGE key offset value 将偏移量之后的值替换

offset 为从开始的偏移量
value 为被替换的值

127.0.0.1:6379> get n1
"1234456"
127.0.0.1:6379> setrange n1 4 5678
(integer) 8
127.0.0.1:6379> get n1
"12345678"
Redis 处理二进制位

将字符串看作是二进制位串(二进制字符串)

GETBIT key offset 获取指定偏移量的二进制位的值
127.0.0.1:6379> getbit n1 0
(integer) 0
SETBIT key offset 对指定偏移量的二进制位赋值
127.0.0.1:6379> getbit n1 0
(integer) 0
127.0.0.1:6379> set n1 1
OK
127.0.0.1:6379> get n1
"1"
BITCOUNT key [start end] 获取字符串(或指定区间)值为1的二进制位总数
127.0.0.1:6379> bitcount n1 0 100
(integer) 3
127.0.0.1:6379> bitcount n1
(integer) 3
BITOP operation dest-key key [key1 ···]对一个(或多个)字符串进行逻辑与\或\非\异获运算并保存结果到新key

与运算 AND ,两个二进制数,低位对齐,同1得1,否则得0
或运算 OR,两个二进制数,低位对齐,有1得1,否则得0
异获运算 XOR,两个二进制数,低位对齐,相同得0,不同得1
非 NOT,一个二级制数,0变为1,1变为0
在一般的符号表示法中,与=&,或=|,非=~,异或=^

对两个一模一样的字符串做 异或运算,预期结果是全0

127.0.0.1:6379> set n1 10
OK
127.0.0.1:6379> set n2 10
OK
127.0.0.1:6379> bitop xor n3 n1 n2
(integer) 2
127.0.0.1:6379> get n3
"\x00\x00"
增加过期时间

字符串类型允许在设置键时就设置过期时间
可以以秒为单位,也可以以毫秒为单位

  • 以秒为单位,100秒后过期: ex 100
127.0.0.1:6379> set name 100 ex 100
OK
  • 以毫秒为单位,100000毫秒后过期:px 100000
127.0.0.1:6379> set name 100 px 100000
OK
set 判断键是否已存在 NX/XX

NX 表示key不存在才可以添加
XX 表示key存在才可以添加(覆盖)
没有NX/XX就会直接添加(覆盖)

127.0.0.1:6379> set name jecket NX
(nil)
127.0.0.1:6379> get name
"1"
127.0.0.1:6379> set name jecket XX
OK

127.0.0.1:6379> set abc haha XX
(nil)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值