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