redis基本类型和使用方法详解

2020-02-07 18:01:47王振洲

redis存储数据的基本类型有:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。

依次做一些练习。redis命令不区分大小写。

key相关操作

127.0.0.1:6379> set key hello ## 设置
OK
127.0.0.1:6379> set key1 world
OK
127.0.0.1:6379> keys ke* ## keys查询键名
1) "key1"
2) "key"
127.0.0.1:6379> del key1 ## 删除键值对
(integer) 1
127.0.0.1:6379> exists key ##查询键名是否存在
(integer) 1 ##存在返回1
127.0.0.1:6379> exists key1
(integer) 0 ##不存在返回0
127.0.0.1:6379> type key ##查询键值的类型 
string

字符串类型

127.0.0.1:6379> exists num 
(integer) 0
127.0.0.1:6379> incr num ##incr一个不存在的值,先创建新值,赋值为0,再自增1.院子操作。 对应的是decr
(integer) 1
127.0.0.1:6379> set key hello
OK
127.0.0.1:6379> incr key ##无法对string自增
(error) ERR value is not an integer or out of range
127.0.0.1:6379> incrby num 3 ##increby增加指定的数值,对应的是decrby
(integer) 4
127.0.0.1:6379> incrbyfloat num 0.7 ##增加浮点数
"4.7"
127.0.0.1:6379> append key " world!" ##append追加字符
(integer) 12
127.0.0.1:6379> get key
"hello world!"
127.0.0.1:6379> strlen key ##strlen字符串长度
(integer) 12
127.0.0.1:6379> mget key num ## mget批量获取键值
1) "hello world!"
2) "4.7"
127.0.0.1:6379> mset key hi num 5.5 ##mset批量设置
OK
127.0.0.1:6379> mget key num
1) "hi"
2) "5.5"
127.0.0.1:6379> set foo bar 
OK
127.0.0.1:6379> getbit foo 1 ##getbit获取某一位二进制数值
(integer) 1
127.0.0.1:6379> setbit foo 22 0 ##设置修改位值
(integer) 1
127.0.0.1:6379> get foo ##修改成功
"bap"
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> set foo1 aar
OK
127.0.0.1:6379> bitop or result foo foo1 ##bitop位操作
(integer) 3
127.0.0.1:6379> get result
"car"

GETBIT key offset

SETBIT key offset value

BITCOUNT key [start] [end] 获取键值中值为1的二进制位个数,start和end表示字节位置

BITOP operation destkey key [key...] 对多个键值进行位运算,并将结果存储在destkey对应的键值中。支持的操作:AND、 OR、 XOR、 NOT。

GETSET key newValue 原子操作,设置新值,返回原来的值。如果原值不存在,返回nil。

SETEX key seconds value 设置键值对的失效时间是seconds秒。

SETNX key value put if absent, or do nothing。

SETRANGE key offset value 从index等于offset位置起,替换length(value)个字符,替换为value。如果offset超出范围,则中间补充0x00。

GETRANGE key start end 获取指定返回的字符串,闭区间。end超过长度,则取到字符串末尾。

MGET key [key ... ]

MSET key value [key value ... ]

MSETNX key value [key value ... ] 原子操作。如果在这一批Keys中有任意一个Key已经存在了,那么该操作将全部回滚,即所有的修改都不会生效。1表示全部设置成功;0表示都没有设置。