redis有五种常用的数据类型:
string
hash
list
set
sorted_set
下面分别介绍这五种类型。
string是redis中最简单的数据类型,也是最常用的数据类型,比如:
set name zhangsan
我们还能一次性保存多个数据:
mset name lisi age 30 gender 1
这样我们就同时设置了三个键值,当然也可以一次性取出多个数据:
mget name age gender
还可以获取字符串长度,比如:
strlen name
需要注意的是当set保存的数据,其键名已经存在的情况下,新的值会覆盖旧的值,redis提供了一种追加方式,以适应更灵活的场景:
append name abc
此时会在key为name字符串后拼接上 abc ,若name不存在,则创建新的数据。
若是数据的键值为数字,则redis会提供一些数字特有的功能,但它本质上还是字符串:
set num 1
比如自增操作:
incr num
结果如下:
- 127.0.0.1:6379> set num 1
- OK
- 127.0.0.1:6379> incr num
- (integer) 2
- 127.0.0.1:6379> incr num
- (integer) 3
- 127.0.0.1:6379> incr num
- (integer) 4
自减操作:
decr key
结果如下:
- 127.0.0.1:6379> decr num
- (integer) 3
- 127.0.0.1:6379> decr num
- (integer) 2
- 127.0.0.1:6379> decr num
- (integer) 1
默认自增自减操作为加1或减1,若是想设置步长,则:
incrby num 2
结果如下:
- 127.0.0.1:6379> incrby num 2
- (integer) 3
- 127.0.0.1:6379> incrby num 2
- (integer) 5
- 127.0.0.1:6379> incrby num 2
- (integer) 7
自减也是如此:
decrby num 2
步长还支持设置为小数,但incrby是不支持的,我们需要使用incrbyfloat:
incrbyfloat num 0.5
作为缓存数据库,redis的数据都是存储在内存中的,内存十分宝贵,所以我们不应该让一些垃圾数据还残留在redis中浪费资源,为此,我们需要为数据设置它的时效,即:时间一到,就删除对应的数据信息。