Redis数据
Redis数据结构
- Redis时key-value的数据结构,每条数据都是一个键值对
- 键的类型必须是字符串,但是键不允许重复
- 值得类型分为五种:
- string:字符串
- hash:哈希,值中也是键值对得数据
- list:列表
- set:集合,集合内部的元素不允许重复
- zset:有序集合,集合的内部元素不允许重复
数据类型
除了以下命令,redis还包括很多其它的命令,详见参考:https://doc.redisfans.com
键命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 查找数据库中有哪些键 keys 正则表达式
# 判断键是否存在,存在则返回1,否则返回0 exists key1
# 判断键对应的value类型 type key1
# 删除键及对应的值 del key1 key2 ...
# 追加键的过期时间,如果不设定则该key-value将一直存在 expire key seconds
# 查看键的剩余有效时间 ttl key1
|
String类型
字符串类型是Redis中最为基础的数据存储类型,在redis中是二进制安全的,它可以接受任何格式的数据,且其字符串类型的value最多可以接受数据的长度为512M
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 设置键值 set key value
# 设置键值和过期时间 setex key seconds value
# 设置多个键值 mset key1 value1 key2 value2 ...
# 对key的value字段追加值 append key value
# 获取键对应的值,若键对应的值不存在则返回nil get key
# 一次获取多个键对应的值 mget key1 key2 key3 ...
|
Hash类型
hash用于存储对象,对象的结构就是属性、值
hash值得类型为string
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| # 设置单个属性,value必须是字符串类型 hset key field value
# 设置多个属性值 hset key1 field1 value1 key2 field2 value2 ....
# 获取hash键所有的属性值 hkeys key
# 获取hash中某一个属性的值 hget key field
# 一次获取多个属性的值 hmget key field1 field2
# 获取所有属性的值 hvals key
# 删除整个hash键与值 del key
# 删除属性及对应的值信息 hdel key field1 field2
# 获取hash属性中列表的长度 hlen key
|
List类型
列表的元素类型为string,列表中元素按照插入顺序进行排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # 在指定的键左侧插入数据 lpush key value1 value2 ...
# 在指定的键右侧插入数据 rpush key value1 value2 ...
# 在指定的元素前/后插入数据 linsert key before/after [现有元素] value1 value2 ...
# 返回列表中指定范围内的元素 # start、end是索引下标,索引从0开始,可以是负数,负数表示从尾部开始,-1表示最后一个元素 lrange key start end
# 修改列表中指定索引的值 lset key [索引值] value
# 将列表中前count次出现的值为value的元素移除 # count>0:表示从头向尾开始删除;count<0:表示从尾向头开始删除;count=0:表示删除所有 lrem key [count次] value
|
Set类型
set是无序集合,元素为string类型,元素具有唯一性,不重复。对集合没有修改操作
1 2 3 4 5 6 7 8
| # 添加元素 sadd key member1 member2 ...
# 获取Set类型的key中所有的元素 smembers key
# 删除指定的元素 srem key member1 member2
|
Zset类型
zset是有序集合,元素是string类型,元素具有唯一性,不重复,但是没有修改操作。
每个元素都会关联一个double类型score,标识权重,通过权重将元素从小到大进行排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # 添加zset的数据 zadd key score1 member1 score2 member2 ....
# 获取zset指定范围内的数据 # start、end是索引下标,索引从0开始,可以是负数,负数表示从尾部开始,-1表示最后一个元素 zrange key start end
# 获取权值之间的数据,返回结果包括权值边缘 zrangebyscore key [权值下限] [权值上限]
# 返回zset中成员member的权值 zscore key member
# 删除zset中指定的成员 zrem key member1 member2 ...
# 删除权重在指定范围内的成员,结果包括权值的边缘 zremrangebyscore key by [权值下限] [权值上限]
|