查看和连接redis命令行
redis-cli --help
查看所有string类型的操作
help @string
string类型分为三种
1.string
2.number
3.bit
应用场景
- 利用bitcount统计某一天在线人数
- 秒杀 incr
- 分布式锁setnx
一、string 类型
(1)插入数据
set k1 aa
(2) 如果k1不存在,则插入数据
set k1 aa nx
setnx k1 aa
(3)获取数据
get k1
(4)追加数据
append k1 c
(5) 获取区间数据 (坐标从左到右: 0,1,2 ; 从右到左: -1,-2,-3)
127.0.0.1:6379[6]> set k1 abcd
OK
127.0.0.1:6379[6]> GETRANGE k1 0 1
"ab"
127.0.0.1:6379[6]> GETRANGE k1 -2 -1
"cd"
(6)set a value and return old value
127.0.0.1:6379[6]> get k1
"abcd"
127.0.0.1:6379[6]> getset k1 aa
"abcd"
127.0.0.1:6379[6]> get k1
"aa"
(7)批量写入和批量读取
mset k1 a1 k2 a2
mget k1 k1
(8)从某个坐标开始覆盖值
(9)查看value 类型
二、int 类型 (秒杀)
(1)加int数据-类型为int
127.0.0.1:6379[6]> INCR k1
(integer) 1
127.0.0.1:6379[6]> GET k1
"1"
127.0.0.1:6379[6]> OBJECT encoding k1
"int"
(2)减操作
DECR k1
(3)获取长度 (value是采取的字节存储)
127.0.0.1:6379[6]> get k1
"100"
127.0.0.1:6379[6]> STRLEN k1
(integer) 3
三、bit操作
(1)设置某一位的二进制值
127.0.0.1:6379[6]> SETBIT k1 1 1
(integer) 0
127.0.0.1:6379[6]> get k1
"@"
这儿是设置第1位为1即0100 0000,对应的是ascll码
(2)找到位1是第一次出现的位置
127.0.0.1:6379[6]> setbit k1 2 1
(integer) 0
127.0.0.1:6379[6]> bitpos k1 1 0 0
(integer) 2
0010 0000 即第一次出现1是在第2(从0开始算)
(3)bitcount-统计在第0个字节出现1的个数
bitcount k1 0 0
(4) bitop 两个value字节操作 (统计活跃人数)
127.0.0.1:6379[6]> SETBIT 20200301 1 1
(integer) 0
127.0.0.1:6379[6]> SETBIT 20200301 7 1
(integer) 0
127.0.0.1:6379[6]> SETBIT 20200304 1 1
(integer) 0
127.0.0.1:6379[6]> SETBIT 20200304 2 1
(integer) 0
127.0.0.1:6379[6]> BITOP AND ANDKEY 20200301 20200304
(integer) 1
127.0.0.1:6379[6]> bitcount ANDKEY
(integer) 1
127.0.0.1:6379[6]> bitcount ANDKEY 0 0
(integer) 1
127.0.0.1:6379[6]> BITOP OR ORKEY 20200301 20200304
(integer) 1
127.0.0.1:6379[6]> BITCOUNT ORKEY 0 0
(integer) 3