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:将有序集合中指定成员的分数增加给定的增量值。
相关推荐
月光水岸New33 分钟前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山67534 分钟前
数据库基础1
数据库
我爱松子鱼38 分钟前
mysql之规则优化器RBO
数据库·mysql
chengooooooo1 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser2 小时前
【SQL】多表查询案例
数据库·sql
Galeoto2 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
希忘auto3 小时前
详解Redis在Centos上的安装
redis·centos
人间打气筒(Ada)3 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231113 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白3 小时前
PostgreSQL:更新字段慢
数据库·postgresql