目录
概述
redis 支持5种数据类型,字符串(String) 哈希(hash) 列表(list) 集合(set) 有序集合(sorted set)
字符串
String 类型是redis的最基本类型,一个key对应一个value。一个键能存储的最大是512M,使用场景大多数为session共享,将数据以字符串方式存入缓存。
基本语法:
//ex seconds: 键过期时间
px milliseconds: 为键设置毫秒级过期时间
nx: 键必须不存在才可以设置成功,用于添加
xx: 键必须存在,才可以设置成功,用于更新
set key value [EX seconds] [PX milliseconds] [NX|XX]
//得到key
get key
常用:
1 GETRANGE key start end 此命令用于获取存储在键中的字符串的子字符串。
2 GETSET key value 此命令用于设置键的字符串值并返回其旧值。
3 GETBIT key offset 此命令用于返回存储在key的字符串值中的偏移量处的位值。
4 MGET key1 [key2 ..] 此命令用于获取所有给定键的值
5 SETBIT key offset value 此命令用于设置或清除存储在key的字符串值中的偏移位
6 SETEX key secodes value 此命令用于设置key到期时的值
7 SETNX key value 仅当key不存在时,此命令用于设置key的值
8 SETRANGE key offset value 此命令用于覆盖从指定偏移量开始的键处的字符串部分
9 STRLEN key 此命令用于检索存储在key中的值的长度
10 MSET key value [key value …] 此命令用于将多个键设置为多个值
11 MSETNX key value [key value …] 仅当没有任何键存在时,此命令用于将多个键设置为多个值
12 PSETEX key milliseconds value 此命令用于设置key的值和到期时间(以毫秒为单位)
13 INCR key 此命令用于将键的整数值递增1
14 INCRBY key increment 此命令用于按给定量递增键的整数值
15 INCRBYFLOAT key increment 此命令用于按给定的量增加键的浮点值
16 DECR key 此命令用于将键的整数值递减1
哈希
hash是键值对的集合,是String 类型的键值和value 的映射表,适合存储对象
语法
hmset key field value [field value ...] //设置值
hgetall key //得到值
常用
1 HEXISTS key field 确定是否存在哈希字段。
2 HDEL key field2 [field2] 删除一个或多个哈希字段。
3 HMGET key1 [field2] 获取所有给定哈希字段的值
4 HMSET key field1 value1 [field2 value2] 将多个哈希字段设置为多个值
5 HSET key field 设置哈希字段的字符串值
6 HSETNX key field 仅当字段不存在时,设置哈希字段的值
7 HVALS key 获取哈希值中的所有值
列表
列表的定义是字符串列表,是有序的,可以将元素添加到列表的头部和尾部。
语法:
lpush key value [value ...] //添加
lrange key start stop //获得 start stop 是开始结束值 详见例子
常用:
1 BLPOP key1 [key2] timeout 删除和获取列表中的第一个元素。
2 BRPOP key1 [key2] timeout 删除和获取列表中的最后一个元素。
3 LINDEX key index 通过索引从列表中获取元素。
4 LINSERT key before|after pivot value 在列表中的另一个元素之前或之后插入元素。
5 LLEN key 获取列表的长度。
6 LPOP key 删除和获取列表中的第一个元素。
7 LPUSH key value1 [value2] 将一个或多个值添加到列表中。
8 LPUSHX key value 仅当列表存在时,将值添加到列表中。
9 LRANGE key start stop 从列表中获取一系列元素。
10 LREM key count value 从列表中删除元素。
11 LSET key index value 通过索引设置列表中元素的值。
12 LTRIM key start stop 将列表修剪到指定范围。
13 RPOP key 删除和获取列表中的最后一个元素。
14 RPOPLPUSH source destination 删除列表中的最后一个元素,将其附加到另一个列表并返回它。
15 RPUSH key value1 [value2] 将一个或多个值附加到列表。
16 RPUSHX key value 仅当列表存在时,用于将值附加到列表。
使用场景,消息队列:lpush + brpop或rpop命令,实现先进先出,如果消费失败客户端把key再放回去,消费成功真的remove掉(有单独博客和源码)
集合
set是String类型的无序集合,集合成员是唯一的。
语法:
sadd key member [member ...]
smembers key
常用:
1 scard key //计算元素的个数
2 sismember key value //判断元素是否在集合中
3 srandmember key [count] //随机从集合中返回指定个数的元素,不写默认为1
4 spop key //从集合随机取出元素
5 smembers key //获取集合内的所有元素
6 sinter key1 key2 //求集合的交集
7 sunion key1 key2 //求集合的并集
8 sdiff key1 key2 //求集合的差集
有序集合
有序集合保留的元素不能重复的特性,并且是有序的
1 ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
2 ZCARD key 获取有序集合的成员数
下一篇 https://blog.csdn.net/lilongwangyamin/article/details/105245675 redis 事务 备份及安全