String 字符串
192.168.4.51:6351> set sex gril [EX seconds] [PX milliseconds] [NX|XX]
– 设置 key 及值,过期时间可以设置为秒或毫秒为单位
– nx 只有 key 不存在,才对 key 进行操作
– xx 只有 key 已存在,才对 key 进行操作
-EX 代表有效期,时间为秒
192.168.4.51:6351> set like gril EX 20
OK
192.168.4.51:6351> ttl like //查看有效期
(integer) 12
192.168.4.51:6351> ttl like
(integer) -1 //-1代表存在
192.168.4.51:6351> ttl king
(integer) -2 //-2代表不存在
192.168.4.51:6351> set name yaya NX
OK
192.168.4.51:6351> set name yaya
OK
192.168.4.51:6351> set name yaya NX
(nil)
192.168.4.51:6351> set name yaya XX
OK
192.168.4.51:6351> set name yaya XX
192.168.4.51:6351> set tel 13527898646
OK
192.168.4.51:6351> get tel
"13527898646"
192.168.4.51:6351> SETRANGE tel 4 ****
(integer) 11
192.168.4.51:6351> get tel
"1352****646"
strlen key
– 统计字串长度
192.168.4.51:6351> STRLEN tel
(integer) 11
192.168.4.51:6351> STRLEN name
(integer) 4
append key value
– 字符存在则追加,不存在则创建 key 及 value
– 返回值为 key 的长度
192.168.4.51:6351> get name
"yaya"
192.168.4.51:6351> APPEND name 666
(integer) 7
192.168.4.51:6351> get name
"yaya666"
192.168.4.51:6351> APPEND name2 alice
(integer) 5
192.168.4.51:6351> get name2
"alice"
setbit key offset value
– 对 key 所存储字串,设置或清除特定偏移量上的位 (bit)
– Value 值可以为 1 或 0 , offset 为 0~2^32 之间
– key 不存在,则创建新 key
>setbit bit 0 1
>setbit bit 1 0
bit: 第 0 位为 1 ,第一位为 0
• bitcount key
– 统计字串中被设置为 1 的比特位数量
192.168.4.51:6351> setbit yayabb 1 1
(integer) 0
192.168.4.51:6351> setbit yayabb 2 1
(integer) 0
192.168.4.51:6351> setbit yayabb 3 1
(integer) 0
192.168.4.51:6351> setbit yayabb 4 0
(integer) 0
192.168.4.51:6351> setbit yayabb 5 1
(integer) 0
192.168.4.51:6351> keys *
1) "yayabb"
2) "like"
3) "name"
4) "name2"
5) "tel"
192.168.4.51:6351> BITCOUNT yayabb
(integer) 4
记录网站用户上线频率,如用户 A 上线了多少天等类似的数据
如用户在某天上线,则使用 setbit ,以用户名为 key ,将网站上线
日为 offset ,并在该 offset 上设置 1 ,最后计算用户总上线次数时,使用 bitcount 用户名即可
这样,即使网站运行 10 年,每个用户仅占用 10*365 比特位即 456
字节即可
这样可以节省空间
decr key
– 将 key 中的值减 1 , key 不存在则先初始化为 0 ,再减 1
192.168.4.51:6351> set x 100
OK
192.168.4.51:6351> EXISTS x
(integer) 1
192.168.4.51:6351> get x
"100"
192.168.4.51:6351> DECR x
(integer) 99
192.168.4.51:6351> DECR x
(integer) 98
• decrby key decrement
– 将 key 中的值,减去 decrement
192.168.4.51:6351> set x 100
OK
192.168.4.51:6351> DECRBY x 20
(integer) 80
192.168.4.51:6351> DECRBY x 20
(integer) 60
192.168.4.51:6351> DECRBY x 2
(integer) 58
get key
– 返回 key 所存储的字符串值
– 如果 key 不存在则返回特殊值 nil
– 如果 key 的值不是字串,则返回错误, get 只能处理字串
192.168.4.51:6351> keys *
1) "x"
2) "yayabb"
3) "like"
4) "x2"
5) "name"
6) "name2"
7) "tel"
192.168.4.51:6351> get x
"58"
192.168.4.51:6351> get x x2
(error) ERR wrong number of arguments for 'get' command
192.168.4.51:6351> MGET x x2 name
1) "58"
2) "-1"
3) "yaya666alice"
• getrange key start end
– 返回字串值中的子字串,截取范围为 start 和 end
– 负数偏移量表述从末尾计数, -1 表示最后一个字符, -2表示倒数第二个字符
-从零开始拿
192.168.4.51:6351> get tel
"1352****646"
192.168.4.51:6351> GETRANGE tel 1 2
"35"
192.168.4.51:6351> GETRANGE tel 0 3
"1352"
192.168.4.51:6351> GETRANGE tel -2 -1
"46"
192.168.4.51:6351> GETRANGE tel -3 -1
"646"
incr key
– 将 key 的值加 1 ,如果 key 不存在,则初始为 0 后再加 1
– 主要应用为计数器
incrby key increment
– 将 key 的值增加 increment
192.168.4.51:6351> set x 20
OK
192.168.4.51:6351> incr x
(integer) 21
192.168.4.51:6351> incr x
(integer) 22
192.168.4.51:6351> incr x
(integer) 23
192.168.4.51:6351> INCRBY x 6
(integer) 29
192.168.4.51:6351> INCRBY x 20
(integer) 49
• incrbyfloat key increment
– 为 key 中所储存的值加上浮点数增量 increment
192.168.4.51:6351> INCRBY x 0.3
(error) ERR value is not an integer or out of range
192.168.4.51:6351> INCRBYFLOAT x 0.9
"49.9"
192.168.4.51:6351> INCRBYFLOAT x 1.3
"51.2"
• mset key value [key value ...]
– 一次设置多个 key 及值,空格分隔, < 具有原子性 >
• mget key [key...]
– 一次获取一个或多个 key 的值,空格分隔, < 具有原子性
192.168.4.51:6351> mset j 10 k 30
OK
192.168.4.51:6351> mget j k
1) "10"
2) "30"