Redis可以支持存储不同格式的数据,Redis是一个数据结构服务器,它不是简单的key-value存储,以下是可以作为存储的类型:
- 二进制安全的字符串
- 列表(Lists),按顺序插入的字符串元素的集合
- 集合(Sets),是不重复的并且无序的
- 有序集合(Sorted sets),每个字符串元素都关联到一个叫score浮动数值(floating number value)。里面的元素总是通过score进行排序
- 哈希(Hashes),由字段(field)及其关联的值(value)组成的映射
- Bit arrays
- HyperLogLogs
可以使用redis-cli
命令启动客户端,连接到redis服务器,来实践一下redis的使用:
字符串(Strings)
在一条命令中同时查询或赋值多个键
- mset 返回数组
- mget
mset a 1 b 2 c 3
mget a b c
判断键是否存在
- exists 存在返回0,不存在返回1
exists a
删除键
- del 存在则返回1,不存在返回0
返回某个键的类型
- type 不存在则返回none
type testList
设置和查询过期时间(expires)
expire
127.0.0.1:6379> set key uuuuuuu OK 127.0.0.1:6379> expire key 5 (integer) 1 127.0.0.1:6379> get key "uuuuuuu" 127.0.0.1:6379> get key (nil)
ttl 查询距离过期的剩余时间
127.0.0.1:6379> set key 100 ex 10 OK 127.0.0.1:6379> ttl key (integer) 6 127.0.0.1:6379> ttl key (integer) 2 127.0.0.1:6379> ttl key (integer) -2
列表(Lists)
- lpush 从头部添加元素
- rpush 从尾部添加元素
- lrange 查询某个范围内的元素,索引从0开始,-1表示最后一个元素,-2表示倒数第二个元素,以此类推
- lpop 从头部移除元素
- rpop 从尾部移除元素
- ltrim 截取某个范围内的元素,并将结果赋值给该列表
lpush testList b
lpush testList a
rpush testList c
lrange testList 0 3
lpop testList
rpop testList