Redis 常用操作

一、Redis常用的5种数据类型

  1. 字符串(String):最基本的数据类型,可以存储字符串、整数或浮点数。
  2. 哈希(Hash):键值对的集合,可以在一个哈希数据结构中存储多个字段和值。
  3. 列表(List):按照插入顺序存储一组有序的值,可以在列表的两端执行插入、删除和访问操作。
  4. 集合(Set):无序的唯一值的集合,支持对集合执行添加、删除和集合间的交集、并集、差集等操作。
  5. 有序集合(Sorted Set):也叫Zset,类似于集合,但每个成员都关联着一个分数(score),可以根据分数对成员进行排序,同时保持唯一性。

二、String类型

常用操作

  1. SET key value:设置指定 key 的值为给定的 value。
  2. GET key:获取指定 key 的值。
  3. DEL key:删除指定的 key。
  4. MSET key value [key value ...]:批量设置key value。
  5. MGET key [key ...]:批量获得key value。
  6. SETEX key seconds value:设置指定 key 的值,并指定过期时间(以秒为单位)。
  7. SETNX key value:设置 key 不存在的key value,如果key存在,那么当前value不会覆盖已存在key的value。
  8. STRLEN key:返回指定 key 的值的长度。

原子加减操作:

  1. INCR key:将指定 key 的值加 1。
  2. DECR key:将指定 key 的值减 1。
  3. INCRBY key increment:将指定key的value与increment相加,只针对数字类型。
  4. DECEBY key decrement:将指定key的value减去decrement,只针对数字类型。
  5. APPEND key value:将指定 value 追加到指定 key 的值末尾。
  6. GETSET key value:设置指定 key 的新值,并返回旧值。

单值缓存操作:

  1. SET key value
  2. GET key

对象缓存操作:

  1. SET user:1 value(value是一个JSON字符串)
  2. MSET user:1:name zhangsan user:1:age 18

分布式锁操作:

  1. SETNX lock_key 1 (lock_key:要锁的键, 1: 可以是任意非空的值,用于表示锁的存在。结果返回0表示false,1表示true)
  2. DEL lock_key //执行完业务逻辑释放锁
  3. SETEX lock_key expiration_time 1(设置有时效的锁)

Sting类型适用场景

  1. 例如统计一篇文章的阅读量,在业务场景上来说用户打开一篇文章则+1,那么可以使用redis的计数器。使用incr article:readcount:1000,每执行一次表示文章ID为1000的累加一次。article:readcount是我们自定义的前缀,为了更好的见名识义
  2. Web集群session共享,spring session + redis实现session共享
  3. 分布式全局序列号,使用redis批量生成序列号提升性能,INCRBY orderId 1

三、Hash类型

常用操作

  1. HSET key field value:设置 Hash 中指定键的字段和值。
  2. HGET key field:获取 Hash 中指定键的字段的值。
  3. HDEL key field1 [field2 ...]:删除 Hash 中指定键的一个或多个字段。
  4. HEXISTS key field:检查 Hash 中指定键是否存在指定字段。
  5. HKEYS key:获取 Hash 中指定键的所有字段名。
  6. HVALS key:获取 Hash 中指定键的所有字段值。
  7. HGETALL key:获取 Hash 中指定键的所有字段和值。
  8. HINCRBY key field increment:将 Hash 中指定键的字段值按给定增量递增。
  9. HLEN key:获取 Hash 中指定键的字段数量。

对象缓存操作

  1. HMSET key field1 value1 [field2 value2 ...]:同时设置 Hash 中指定键的多个字段和值。
  2. HMGET key field1:获取 Hash 中指定键的字段值。

四、List类型

常用操作

  1. LPUSH key element1 [element2 ...]:将一个或多个元素从左侧插入到列表中。
  2. RPUSH key element1 [element2 ...]:将一个或多个元素从右侧插入到列表中。
  3. LPOP key:从左侧移除并返回列表中的第一个元素。
  4. RPOP key:从右侧移除并返回列表中的最后一个元素。
  5. BRPOP key [key ...] timeout:从右侧移除一个元素,如果没有则等待,timeout是等待时长(秒),0则一直等待
  6. LINDEX key index:获取列表中指定索引位置的元素值。
  7. LRANGE key start stop:获取列表中指定范围内的元素列表。
  8. LLEN key:获取列表的长度(即列表中元素的数量)。
  9. LREM key count element:从列表中移除指定数量的匹配元素。
  10. LINSERT key BEFORE|AFTER pivot element:在列表中指定元素的前面或后面插入一个元素。
  11. LSET key index element:将列表中指定索引位置的元素替换为新的值。

五、Set类型

常用操作

  1. SADD key member1 [member2 ...]:将一个或多个成员添加到集合中,成员存在则忽略,不存在则新建。
  2. SREM key member1 [member2 ...]:从集合中移除一个或多个成员。
  3. SISMEMBER key member:检查指定成员是否存在于集合中。
  4. SMEMBERS key:获取集合中的所有成员。
  5. SCARD key:获取集合中的成员数量。
  6. SPOP key [count]:从集合中随机移除并返回一个或多个成员。
  7. SRANDMEMBER key [count]:从集合中随机获取一个或多个成员,但不移除。
  8. SDIFF key1 [key2 ...]:获取多个集合的差集。(计算公式为:list1-(list2、list2、...的并集),第一个集合减去其他几个集合的并集。排除相同的元素,第一个集合剩下的就是并集)
  9. SINTER key1 [key2 ...]:获取多个集合的交集。
  10. SUNION key1 [key2 ...]:获取多个集合的并集。

六、Sorted Set(Zset)

  1. ZADD key score1 member1 [score2 member2 ...]:将一个或多个成员及其分数添加到有序集合中。各参数的具体含义:key为键,score为member的分数,用于排序,member是key的值,可以批量添加。
  2. ZREM key member1 [member2 ...]:从有序集合中移除一个或多个成员。
  3. ZSCORE key member:获取有序集合中指定成员的分数。
  4. ZRANGE key start stop [WITHSCORES]:按照分数从小到大的顺序,获取有序集合中指定索引范围内的成员。
  5. ZREVRANGE key start stop [WITHSCORES]:按照分数从大到小的顺序,获取有序集合中指定索引范围内的成员。
  6. ZCARD key:获取有序集合中的成员数量。
  7. ZCOUNT key min max:计算有序集合中分数在给定范围内的成员数量。
  8. ZRANK key member:获取有序集合中指定成员的排名,排名从0开始。(按照分数从小到大的顺序)。
  9. ZREVRANK key member:获取有序集合中指定成员的排名(按照分数从大到小的顺序)。
  10. ZINCRBY key increment member:将有序集合中指定成员的分数增加给定的增量值。
相关推荐
o(╥﹏╥)16 分钟前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
海海不掉头发22 分钟前
苍穹外卖-day05redis 缓存的学习
学习·缓存
阿里嘎多学长30 分钟前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_32 分钟前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
Sunyanhui137 分钟前
牛客网 SQL36查找后排序
数据库·sql·mysql
老王笔记1 小时前
MHA binlog server
数据库·mysql
lovelin+v175030409662 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
川石教育2 小时前
Vue前端开发-缓存优化
前端·javascript·vue.js·缓存·前端框架·vue·数据缓存
DT辰白2 小时前
基于Redis的网关鉴权方案与性能优化
数据库·redis·缓存