Redis应用场景

目录

一、Redis

1、Redis数据类型的应用场景

1.1、string

1.2、list

1.3、hash

1.4、set

1.5、zset(sorted set)


一、Redis

Redis命令不区分大小写的,而key是区分大小写的

Redis查看版本
方式1:
G:\Redis-x64-6.0.8>redis-server -v
Redis server v=6.0.8 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=a4f7a6e86f2d60b3方式2:
127.0.0.1:6379> info
# Server
redis_version:6.0.8
redis_git_sha1:00000000
redis_git_dirty:0
.....

Redis官网

Redis中文网站

1、Redis数据类型的应用场景

面试题:
1、redis五种传统的数据类型你如何使用的?用在哪些场景?2、除了上述5大数据类型,你还知道其他redis的类型吗?
bitmap(位图)
HyperLogLog(统计)
GEO(地理)
Stream

1.1、string

1、最常用
set key value
get key2、同时设置/获取多个键值
mset key value key value ...
mget key key1 ....3、数值增减
递增数字
incr key
增加指定整数
incrby key increment
递减数值
decr key
减少指定的整数
decrby key decrement4、获取字符串的长度
strlen key5、分布式锁
setnx key value
set key value [EX seconds] [PX milliseconds] [NX|XX]
EX:key在多少秒之后过期
PX:key在多少毫秒之后过期
NX:当key不存在的时候,才创建key,效果等同于setnx
XX:当key存在的时候,覆盖key

应用场景:

1、商品编号、订单号采用INCR命令生成

2、是否喜欢的文章(点赞/踩一踩) 统计喜欢/不喜欢谋篇文章

阅读数,只要点击了rest地址,直接可以使用incr key命令增加一个数字1,完成记录数字

1.2、list

1、向列表左边添加元素
LPUSH key value [value...]
2、向列表右边添加元素
RPUSH key value [value...]
3、查看列表
LRANGE key start stop
4、获取列表中元素的个数
LLEN key

应用场景:

1、微信文章订阅公众号-->订阅号消息

用户uid1024关注公众号d11 d22
lpush follow:uid1024 d11 d22
d11 d22发布新文章显示,相当于查看, 0 -1 查看所有
lrange follow:uid1024 0 -1

1.3、hash

redis hash 对应====>java中的结构  Map<String,Map<k,v>>

1、一次设置一个字段值
HSET key field value
2、一次获取一个字段值
HGET key field
3、一次设置多个字段值
HMSET key field value [field value...]
4、一次获取多个字段值
HMGET key field [field ...]
5、获取所有字段值
HGETALL KEY
6、获取某个key内的全部数量
hlen key
7、删除一个key
hdel key

应用场景:

1、购物车,全选商品,增加商品数量.....

新增商品-->hset shopcar:uid1024 334488 1
新增商品-->hset shopcar:uid1024 334477 1
增加商品数量-->hincrby shopcar:uid1024 334477 1
商品总数-->hlen shopcar:uid1024
全部选择-->hgsetall shopcar:uid1024

1.4、set

1、添加元素
SADD key member [member...]
2、删除元素
SREM key member [member...]
3、获取集合中的所有元素
SMEMBERS key
4、判断元素是否在集合中
SISMEMBERS key member 
5、获取集合中的元素个数
SCARD key
6、从集合中随机弹出一个元素,元素不删除 [数字]抽出几个
SRANDMEMBER key[数字]
7、从集合中随机弹出一个元素,出一个删除一个 [数字]抽出几个
SPOP key[数字]
8、集合运算
8.1、集合的差集运算A - B 属于A但不属于B的元素构成的集合
SDIFF key[key ...]
8.2、集合的交集运算A ∩ B 属于A同时也属于B的元素构成的集合
SINTER key[key ...]
8.3、集合的并集运算A ∪ B 属于A或者属于B的元素构成的集合
SUNION key[key ...]

应用场景:

1、微信抽奖小程序

1、用户ID,立即参与按钮
sadd key 用户id
2、显示有多少人参与了
SCARD key
3、从集合中随机弹出一个元素,元素不删除 [数字]抽出几个
SRANDMEMBER key[数字]
4、从集合中随机弹出一个元素,出一个删除一个 [数字]抽出几个
SPOP key[数字]

2、微信朋友圈点赞

1、用户ID,新增点赞按钮
sadd key 点赞用户id 点赞用户id2 点赞用户id3 ...
2、取消点赞
srem key 点赞用户id 点赞用户id2 点赞用户id3 ...
3、展现所有点赞过的用户
SMEMBERS key
4、点赞用户数统计,就是常见的点赞红色数字
scard key
5、判断某个朋友是否对楼主点赞过
SISMEMBERS key 点赞用户id

3、微博好友关注社交关系

1、共同关注的人,取交集
SINTER key1 key2

4、QQ内推可能认识的人

1、取差集,我认识的但你不认识的,差集
SDIFF key1 key2...

1.5、zset(sorted set)

1、向有序集合中加入一个元素和该元素的分数,添加元素
ZADD key score member [score member...]
2、按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素
ZRANGE key start stop [WISHSCORES]
3、获取元素的分数
ZSCORE key member
4、删除元素
ZREM key member [member ...]
5、获取指定分数范围的元素
ZRANGEBYSCORE key min max [WISHSCORES][LIMIT offset count]
6、增加某个元素的分数
ZINCRBY key increment member
7、获取集合中元素的数量
ZCARD key
8、获得指定分数范围内的元素个数
ZCOUNT key min max
9、按照排名范围删除元素
ZREMRANGEBYRANK key start stop
10、获取元素的排名从小到大 ZRANK key member从大到小 ZREVRANK key member

应用场景:

1、根据商品销售对商品进行排序显示

定义商品销售排行榜(sorted set 集合),key为goods:sellsort,分数为商品销售数量
1、商品id1001的销售数量是9,商品id1002的销售数量是15
zadd goods:sellsort 9 1001 15 1002
2、有一个客户又买了2件1001的商品
zincrby goods:sellsort 2 1001
3、求商品销售前10名
zrange goods:sellsort 0 10 withscores

2、抖音热搜

1、点击视频
zincrby hotvcr:20231024 1 孙悟空三打白骨精
zincrby hotvcr:20231024 15 孙悟空三打白骨精 4 东游记
2、展示当前排行前10条
zrevrange hotvcr:20231024 0 9 withscores

SSM--->SSR

Redis缓存数据库(一)

一个程序员最重要的能力是:写出高质量的代码!!
有道无术,术尚可求也,有术无道,止于术。
无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃!

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

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

相关文章

人工智能(5):深度学习简介

1 深度学习 —— 神经网络简介 深度学习&#xff08;Deep Learning&#xff09;&#xff08;也称为深度结构学习【Deep Structured Learning】、层次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】&#xff09;是一类算法集合&#xff0c;是机器学…

【CSS】使用 CSS 实现一个宽高自适应的正方形

1. 利用 padding 或 vw <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><metaname"viewport"content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

Java File与IO流学习笔记

内存中存放的都是临时数据&#xff0c;但是在断电或者程序终止时都会丢失 而硬盘则可以长久存储数据&#xff0c;即使断电&#xff0c;程序终止&#xff0c;也不会丢失 File File是java.io.包下的类&#xff0c;File类的对象&#xff0c;用于代表当前操作系统的文件(可以是文…

智慧公厕蜕变多功能城市智慧驿站公厕的创新

随着城市发展的不断推进&#xff0c;对公共设施的便利性和智能化要求也日益提高。为满足市民对高品质、便捷、舒适的公共厕所的需求&#xff0c;智慧公厕行业的领航厂家广州中期科技有限公司&#xff0c;全新推出了一体化智慧公厕驿站。凭借着“高科技碳中和物联网创意设计新经…

【Java基础面试四十二】、 static修饰的类能不能被继承?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; static修饰的类能不能被…

设计模式-责任链设计模式

核心思想 客户端发出一个请求&#xff0c;链上的对象都有机会来处理这一请求&#xff0c;而客户端不需要知道谁是具体的处理对象让多个对象都有机会处理请求&#xff0c;避免请求的发送者和接收者之间的耦合关系&#xff0c;将这个对象连成一条调用链&#xff0c;并沿着这条链…

深度学习 框架代码(草稿)

文章目录 train.pydataload_five_flower.pytrain_engin.pylr_methods.py__init__.py train_sample.py 和 test.py 见文章&#xff1a; 深度学习-AlexNet代码实现 用 parser 方便服务器中的终端操作第三个代码将 mac的 mps 和 cuda 混合了&#xff0c;有点问题&#xff0c;看下代…

Node学习笔记之HTTP 模块

回顾&#xff1a;什么是客户端、什么是服务器&#xff1f; 在网络节点中&#xff0c;负责消费资源的电脑&#xff0c;叫做客户端&#xff1b;负责对外提供网络资源的电脑&#xff0c;叫做服务器。 http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块…

用Python获取网络数据

用Python获取网络数据 网络数据采集是 Python 语言非常擅长的领域&#xff0c;上节课我们讲到&#xff0c;实现网络数据采集的程序通常称之为网络爬虫或蜘蛛程序。即便是在大数据时代&#xff0c;数据对于中小企业来说仍然是硬伤和短板&#xff0c;有些数据需要通过开放或付费…

相似度loss汇总,pytorch code

用于约束图像生成&#xff0c;作为loss。 可梯度优化 pytorch structural similarity (SSIM) loss https://github.com/Po-Hsun-Su/pytorch-ssimhttps://github.com/harveyslash/Facial-Similarity-with-Siamese-Networks-in-Pytorch/blob/master/Siamese-networks-medium.ip…

为什么嵌入通常优于TF-IDF:探索NLP的力量

塔曼纳 一、说明 自然语言处理&#xff08;NLP&#xff09;是计算机科学的一个领域&#xff0c;涉及人类语言的处理和分析。它用于各种应用程序&#xff0c;例如聊天机器人、情绪分析、语音识别等。NLP 中的重要任务之一是文本分类&#xff0c;我们根据文本的内容将文本分类为不…

UE4逆向篇-2_各类数据的查找方式

写在前面 1.通过前面的文章&#xff0c;相信各位已经能够自己找到GNames并使用DUMP工具导出GNames了。 2.本篇文章将介绍各种所需数据的查找方法。 一、准备工作 1.CheatEngine&#xff0c;本篇以及后续篇幅的重要工具。 2.一个记事本&#xff0c;保证你能记录下关键信息。…

ubuntu启动模式介绍以及如何进入单用户模式和恢复模式

Ubuntu操作系统提供了多种启动模式&#xff0c;每种模式都有不同的用途和功能。下面将深入介绍Ubuntu的几种启动模式&#xff1a; 正常启动模式&#xff08;Normal boot&#xff09;&#xff1a;这是默认的启动模式&#xff0c;也是大多数用户使用的模式。在正常启动模式下&am…

在Mac上使用安卓桌面模式

在安装Homeblew的基础上 替换国内源 export HOMEBREW_API_DOMAIN"https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" export HOMEBREW_BREW_GIT_REMOTE"https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" brew update 安装Scrcpy …

屏幕录像推荐:Apeaksoft Screen Recorder 中文 for mac

Apeaksoft Screen Recorder 是一款功能强大的屏幕录制软件&#xff0c;它允许用户在 Windows 和 Mac 系统上捕捉和录制屏幕活动。无论是记录游戏过程、创建教学视频、制作演示文稿还是捕捉在线流媒体内容&#xff0c;该软件都提供了丰富的功能和工具。 以下是 Apeaksoft Scree…

计算机视觉(CV)技术

是一种将数字图像或视频进行处理和分析的技术&#xff0c;旨在使计算机能够模拟人类视觉系统。该领域涉及到图像处理、模式识别、机器学习等多个领域&#xff0c;主要涵盖以下几方面&#xff1a; 图像处理&#xff1a;对图像进行去噪、增强、分割、特征提取等处理。图像分类&a…

vite+vue3+elementPlus+less+router+pinia+axios

1.创建项目2.按需引入elementplus3.引入less安装vue-router安装 axios安装 piniapinia的持久化配置(用于把数据放在localStorage中)---另外增加的配置 1.创建项目 npm init vitelatest2.按需引入elementplus npm install element-plus --save//按需引入 npm install -D unpl…

HTTP框架 - HttpMaster 核心基类上传

场景 在电子商务应用中&#xff0c;可能需要与多个供应商和物流服务提供商进行通信。这些服务提供商可能具有不同的 API 和身份验证要求。通过封装 HTTP 工具&#xff0c;可以统一管理与这些服务提供商的通信&#xff0c;处理价格查询、订单跟踪、库存查询等任务。如果供应商或…

【MATLAB源码-第52期】基于matlab的4用户DS-CDMA误码率仿真,对比不同信道以及不同扩频码。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. DS-CDMA系统 DS-CDMA (Direct Sequence Code Division Multiple Access) 是一种多址接入技术&#xff0c;其基本思想是使用伪随机码序列来调制发送信号。DS-CDMA的特点是所有用户在同一频率上同时发送和接收信息&#xf…