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:将有序集合中指定成员的分数增加给定的增量值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker实战09|使用AUFS包装busybox

前几篇文章中,重点讲解了如何实现构建容器,需要回顾的小伙伴可以看以下文章: 《Docker实战06|深入剖析Docker Run命令》《Docker实战07|Docker增加容器资源限制》《Docker实战08|Docker管道及环境变量识别…

5.3 Android BCC环境搭建(eadb版 上)

写在前面 eadb即eBPF Android Debug Bridge,它是基于adeb的重构。后者曾随aosp 10发布在platform/external目录下。 一,root权限 这里再HighLight下,当前整个专栏都是基于开发环境来展开的,也就是Android设备需要具有root权限。因此该专栏下每一篇博客都是默认了当前开发…

YOLOv8改进 | 主干篇 | 12月最新成果UniRepLknet特征提取网络(附对比试验效果图)

一、本文介绍 本文给大家带来的改进机制是特征提取网络UniRepLknet,其也是发表于今年12月份的最新特征提取网络,该网络结构的重点在于使用Dilated Reparam Block和大核心指导原则,强调了高效的结构进行通道间通讯和空间聚合,以及使用带扩张的小核心进行重新参数化,该网络…

vsode中调试CPP

如果希望在调试的时候传入参数,则需要再launch.json中配置,这个文件就是执行(非编译)程序时的相关配置: {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: …

.netcore 6 ioc注入的三种方式

1、定义接口 public interface MyInterceptorInterface 2、实现接口 public class MyInterceptorImpl : MyInterceptorInterface 在构造中增加以下代码&#xff0c;便于观察 static ConcurrentDictionary<string, string> keyValues new ConcurrentDictionary<s…

自动化生产线-采用工业机器人比人工有哪些优势?

工业机器人相对于人工具有一些显著的优势&#xff0c;这些优势使它们在制造和生产领域得到广泛应用。以下是工业机器人相对于人工的一些主要优势&#xff1a; 1、精度和一致性&#xff1a; 机器人可以执行高精度的操作&#xff0c;确保产品的质量和规格一致&#xff0c;而且不容…

CSS渐变透明

文章目录 一、前言1.1、MDN 二、实现2.1、源码2.2、线上源码 三、最后 一、前言 使用场景&#xff1a;在做两个元素的连接处的UI适配时&#xff0c;图片的颜色不能保证一定跟背景颜色或者是主色调保持一致时&#xff0c;会显得比较突兀。 1.1、MDN MDN的文档&#xff0c;点击【…

MySQL 8.0中新增的功能(八)

用户评论和用户属性 MySQL 8.0.21引入了在创建或更新用户账户时设置用户评论和用户属性的功能。用户评论由作为COMMENT子句参数传递的任意文本组成&#xff0c;通过CREATE USER或ALTER USER语句使用。用户属性由以JSON对象形式传递的数据组成&#xff0c;作为ATTRIBUTE子句参数…

​如何在iOS手机上查看应用日志

引言 在开发iOS应用过程中&#xff0c;查看应用日志是非常重要的一项工作。通过查看日志&#xff0c;我们可以了解应用程序运行时的状态和错误信息&#xff0c;帮助我们进行调试和排查问题。本文将介绍两种方法来查看iOS手机上的应用日志&#xff0c;并提供相应的操作步骤。 …

基于Github官方教程的快速入门学习

GitHub 是一个用于版本控制和协作的代码托管平台。 它允许您和其他人随时随地协同处理项目。 创建仓库 在任何页面的右上角&#xff0c;使用 下拉菜单选择“新建存储库”。 之后会进入创建仓库的界面&#xff0c;需要我们进行如下操作&#xff1a; 写仓库的名字写对于本仓库…

无失真编码之算术编码的python实现——数字图像处理

原理 无失真编码中的算术编码是一种用于将输入数据进行高效压缩的方法&#xff0c;同时保留了原始数据的完整性。 算术编码的实现过程如下&#xff1a; 数据分段&#xff1a;首先&#xff0c;将要进行编码的数据划分为一个个符号或字符。每个符号可以是文本中的一个字母、一幅…

ubuntu 20.04下 Tesla P100加速卡使用

1.系统环境&#xff1a;系统ubuntu 20.04, python 3.8 2.查看cuDNN/CUDA与tensorflow的版本关系如下&#xff1a; Build from source | TensorFlow 从上图可以看出&#xff0c;python3.8 对应的tensorflow/cuDNN/CUDA版本。 3.安装tensorflow #pip3 install tensorflow 新版…

hadoop自动获取时间

1、自动获取前15分钟 substr(from_unixtime(unix_timestamp(concat(substr(20240107100000,1,4),-,substr(20240107100000,5,2),-,substr(20240107100000,7,2), ,substr(20240107100000,9,2),:,substr(20240107100000,11,2),:,00))-15*60,yyyyMMddHHmmss),1) unix_timestam…

Ceph源码分析-s->req_id = store->svc()->zone_utils->unique_id(req->id)

s->req_id store->svc()->zone_utils->unique_id(req->id); 涉及到指针和对象方法的调用。我会逐步为你解释这行代码的含义。 s->req_id ...; s 是一个指针&#xff0c;它指向一个结构或类。req_id 是该结构或类的一个成员变量。这行代码的意思是&#xff…

《管理的实践》商业/企业的目的和功能

笔记 From《管理的实践》彼得德鲁克 企业的目的 企业的目的&#xff0c;只有一个正确而有效的定义&#xff1a;“创造顾客”。 市场不是由上帝、大自然或经济力量创造的&#xff0c;而是由企业家创造的。 企业的功能 由于企业的目的是创造顾客&#xff0c;任何企业都有两个基…

与AI合作 -- 单例工厂2遗留的问题:bard的错误

问题 上一节我们针对函数内静态变量初始化在多线程环境中要不要用锁保护提出了疑问&#xff0c;代码如下&#xff1a; class Singleton { public:static Singleton& getInstance() {std::lock_guard<std::mutex> lock(mutex); // Acquire lock for thread safetysta…

LeetCode[102] 二叉树层序遍历

Description&#xff1a;给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。解法&#xff1a; vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>…

第一次面试总结 - 迈瑞医疗 - 软件测试

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对专栏 “本人真实面经” 很感兴趣o (ˉ▽ˉ&#xff1b;) 专栏 —— 本人真实面经&#xff0c;更多真实面试经验&#xff0c;中大厂面试总结等您挖掘 注&#xff1a;此次面经全靠小嘴八八&#xff0c;没…

大数据版本管理工具数据湖文件存储系统LakeFS客户端的安装和配置使用

LakeFS是一个开源的数据湖文件存储系统&#xff0c;它提供了版本控制和数据管理的功能。本文将介绍如何安装和配置LakeFS客户端。 首先&#xff0c;你需要确保已经安装了Python环境。LakeFS的客户端使用Python编写&#xff0c;因此需要安装Python来运行客户端。 安装LakeFS客…

腾讯云最新优惠活动入口整理汇总

随着云计算技术的快速发展&#xff0c;腾讯云作为国内领先的云服务提供商&#xff0c;一直致力于为用户提供高效、稳定、安全的云服务。为了回馈广大用户的支持&#xff0c;腾讯云经常推出各种优惠活动。本文将对腾讯云最新的优惠活动入口进行整理和汇总&#xff0c;帮助用户更…