数据类型
常用的有5种数据类型:
1) 字符串-String
也能存储整型数据,并通过INCR命令对值进行自增操作
2) 列表-list
Redis中的列表只能存字符串类型
3) 哈希 or 散列-hash
Redis的key-value键值对中的value可以是类似map的一种数据类型
4) 集合-set
和java中set相同,和list类似,不同之处在于set中的数据①不能重复,②且无序
5) 有序集合-zset
zset和hash更相似也是map类型.它的key是实际上的成员,而value则是用于排序的"分值".这个特性能帮我们快速的实现"点赞数最高倒序排列"等功能.
命令
在安装了Redis的Linux上,通过redis-server启动服务,新开一个窗口输入redis-cli进行交互.
set写入,get读取:
set hello world
get hello ==> world
del 删除:
del hello ==>(integer) 1
mset多值写入:
mset k1 v1 k2 v2 k3 v3
自增自减命令: incr key value(value是数字,类型是string)
127.0.0.1:6379> set hello 1
OK
127.0.0.1:6379> get hello
"1"
127.0.0.1:6379> incr hello
(integer) 2
127.0.0.1:6379> get hello
"2"
自减-1是 decr [key]
如果想递增任意整数,使用incrby [key] [number],递减使用 decrby [key] [number]
自增任意浮点数通过 incrbyfloat [key] [float]
字符串操作命令
Redis对字符串的操作,可以像Java一样进行append、获取子串getrange
append [key] [append_string]
127.0.0.1:6379> set say hello
OK
127.0.0.1:6379> get say
"hello"
127.0.0.1:6379> append say _world
(integer) 11
127.0.0.1:6379> get say
"hello_world"
获取子串 getrange [key] [start] [end]
127.0.0.1:6379> getrange say 1 10
"ello_world"
可以通过setrange替换子串 setrange [key] [start] [value]
127.0.0.1:6379> SETRANGE say 5 " "
(integer) 11
127.0.0.1:6379> get say
"hello world"
二进制位命令
可以用于表示仅两个状态的场景,如消息的已读和未读.
setbit [key] [第几位二进制值] [0或1] : 通过setbit设置读取状态
getbit [key] [位数] : 通过getbit查看读取状态
bitcount [key] :通过bitcount统计某个key下二进制值为1的个数
127.0.0.1:6379> set a:1 0
OK
127.0.0.1:6379> setbit a:1 0 0
(integer) 0
127.0.0.1:6379> setbit a:1 1 0
(integer) 0
127.0.0.1:6379> setbit a:1 2 0
(integer) 1
127.0.0.1:6379> setbit a:1 3 0
(integer) 1
127.0.0.1:6379> setbit a:1