redis非关系型数据库
1.redis
redis:开源的,使用c语言编写的NQL数据库
redis:基于内存运行,支持持久化(数据恢复)。采用的就是key-value(键值对)的存储形式,目前在分布式架构中,非常重要的一环
redis服务器程序,是一个单进程模式,即只有一个主进程工作。也就是在一台服务器上可以启动多个redis(端口号不能冲突)
redis的实际处理速度是完全依靠主进程的执行效率
服务器只部署了一个redis进程,多个客户端访问,可能会导致redis的处理能力下降
如果部署了多个redis进程,虽然能提高redis的并发处理能力,但是会给服务器的cpu带来很大的压力
一台服务器,一般部署3个redis进程。(根据情况来看,高并发要部署多个,一般的情况,单进程足够)
1.1 redis的特点
1.具有极高的读写速度,数据读取每秒110000次,写入数据每秒可以执行81000的写入
2.支持丰富的数据类型
3.支持持久化,平常的数据都是保存在内存中,持久化可以写入到磁盘中,既可以保存到本地,也可以实现备份。
4.原子性,所有的操作都是原子性
5.支持主从模式---master--slave模式
1.2 redis为什么这么快?
1.redis是纯内存结构,避免磁盘I/O的耗时
2.核心模块是一个单进程,减少了线程切换和回收线程的时间。
3.I/O的多路复用机制,每一个执行线路,都可以同时执行读和写。高并发的效率大大提高
特殊说明:redis的读写仍然是单进程处理
2.redis和mysql的区别
1、数据的存储方式不同。
2、扩展方式不同,性能上的提升,关系型数据库靠的是提升本机性能。非关系型数据库,可以横向扩展,加入节点服务器的方式提高性能
3、对事务的支持性,mysql支持事务,非关系型数据库也支持事务,redis也可以支持事务,但是稳定性和处理能力都不如关系型数据库。
3.redis的数据类型
redis的特点:读写速度快
数据类型:
1.string:也是redis最基本的类型,最多能存储512MB的数据,可以存储任何数据:数字,文字,图片,等等
2.list :列表当中的元素还是string类型
3.hash :对一个键进行多字段操作要用hash 节省内存空间
4. 无序集合 :set 元素不能重复 可以用来定义唯一值
5.有序集合 :zset 元素不能重复 但是权重可以相同,用来排名
6.位图(BitMap):存储位数据,可以进行位级别的操作。常用命令:SETBIT、GETBIT、BITCOUNT。
7.HyperLogLog:用于基数估算的数据结构。常用命令:PFADD、PFCOUNT。
8.地理位置(GeoSpatial):存储地理位置信息。常用命令:GEOADD、GEODIST、GEORADIUS。
4.string类型
keys * 查看所有键值对
set test guoqi
get test
keys test 查看键值对test
keys t* 查看t开头
keys t?查看t开头后的一位
exists test 查看这个键值对是否存在 1为存在 0为不存在
del test 删除键值对
type test 查看键值对的类型
append test1 hello 键不存在直接写入hello
append test1 work 键存在 把word增加进去
strlen test1 直接返回键的长度
incr test1 递增1(只能对数字)
decr test1 递减1
incrby test1 10 增加10
decrby test1 10 减10
setex test2 15 10 设置生命周期 15s
ttl test2 查看生命周期当为-2 表示已过期 -1表示永不过期
expire test 30 已有键值对 设置生命周期
mset key1 hello key2 world 批量设置
5.list数据类型
lpush guoqi a b c d 1 2 3 创建表 从左往右
lrange guoqi 0 -1 查看表 倒叙排序
lindex guoqi 0 打印第一个数
rpush guoqi1 1 2 3 4 创建表 从右往左
lrange guoqi1 0 -1
lrange guoqi1 1 2
lpushx guoqi1 10 添加10
rpushx guoqi1 10
rpop guoqi1 删除一个
llen guoqi1 查看长度
lset guoqi1 3 shuai 将下标为3的为shuai
linsert guoqi before shuai zd 在shuai前面插入一个za
lrem test2 3 1 删除3个为1的值
6.hash类型
hset guoqi2 tall yes
hget guoqi tall 查看一个字段
hset guoqi2 handsan yes 设置字段
hmget guoqi2 tall handsan 查看多个字段
hdel guoqi2 handsan tall 删除多个
hmset guoqi3 tall rich fangchanzheng yes age 23 多个字段
hmget guoqi3 tall fangchanzheng age 查看多个字段
hgetall guoqi3 直接查询所有
hkeys guoqi3 查看字段名称
hvals guoqi3 查看键对应的字段
del guoqi3 删除guoqi3
7.set数据类型
fushall 清除所有的当前类型
sadd myset a a c 创建 不能重复
smembers myset 查看 myset
sismember myset c 判断c是否存在1为有
sismember myset f 0为不存在
srandmember myset 随机选择一个查看
spop myset 删除
srem myset a e f 删除多个
8.有序集合
zadd myzset 1 one 创建 权重1 元素one
zadd myzset 2 two 3 three
zrange myzset 0 -1 withscores 查看
zrank myzset one 查看索引位置
zcard myzset 获取成员数量
zcount myzset 1 2 统计权重数量为 1-2
zrem myzset three 删除
zrange myzset 0 -1 withscores
zscore myzset two 查看权重
相关文章:
redis非关系型数据库
1.redis redis:开源的,使用c语言编写的NQL数据库 redis:基于内存运行,支持持久化(数据恢复)。采用的就是key-value(键值对)的存储形式,目前在分布式架构中,…...
LeetCode 0053. 最大子数组和:DP 或 递归(线段树入门题?)
【LetMeFly】53.最大子数组和:DP 或 递归 力扣题目链接:https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最…...
二十三种设计模式全面解析-解密职责链模式:请求处理的设计艺术
当我们构建软件系统时,经常会遇到需要处理各种不同类型请求的情况。有时,请求的处理逻辑可能相当复杂,需要按照一定的规则和条件进行处理。在本文中,我们将深入探讨职责链模式在请求处理中的应用。职责链模式通过将请求发送者和接…...
【linux】安装telnet
Telnet Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令…...
深入探索 PaddlePaddle 中的计算图
**引言** 计算图是深度学习平台 PaddlePaddle 的核心组件之一,它提供了一种图形化的方式来表示和执行深度学习模型。通过了解和理解 PaddlePaddle 中的计算图,我们可以更好地理解深度学习的工作原理,并且能够更加灵活和高效地构建和训练复杂…...
西南科技大学814考研一
C语言基础 字节大小 char:1 字节 unsigned char:1 字节 short:2 字节 unsigned short:2 字节 int:通常为 4 字节(32 位平台)或 8 字节(64 位平台) unsigned int&#x…...
【网络编程】简述TCP通信程序,三次握手,四次挥手
文章目录 🎄TCP通信程序⭐打印字符串✨中文乱码问题🎈解决方法 🌺TCP三次握手🌺TCP四次挥手🛸其他 🎊专栏【网络编程】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆…...
【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 ELF 文件加载介绍】
请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 1.1 Trace32 加载符号表1.1.1 ELF 文件加载1.1.2 其它格式文件加载1.1.3 多个 ELF 的加载1.2 Trace32 UEFI 配置1.2.1 x86 32-BIT1.2.2 x86 64-BIT1.2.3 ARM1.1 Trace32 加载符号表 劳特巴赫 TRACE32 可以显示目标…...
Linux(4):Linux文件与目录管理
目录与路径 相对路径在进行软件或软件安装时非常有用,更加方便。利用相对路径的写法必须要确认目前的路径才能正确的去到想要去的目录。 绝对路径的正确度要比相对路径好,因此,在写程序(shell scripts)来管理系统的条…...
Altium Designer学习笔记2
原理图的绘制 需要掌握的是系统自带原理图库元件的添加。...
Atlassian发布最新补贴政策,Jira/Confluence迁移上云最低可至零成本
到2024年2月15日,Atlassian将不再提供对Jira、Confluence、Jira Service Management等Server版产品的支持。 近期,Atlassian推出了一项针对云产品的特殊优惠。现在从Server版迁移到云版,您能享受到高额补贴,甚至成本低至零元。立…...
基于FPGA的五子棋(论文+源码)
1.系统设计 在本次设计中,整个系统硬件框图如下图所示,以ALTERA的FPGA作为硬件载体,VGA接口,PS/2鼠标来完成设计,整个系统可以完成人人对战,人机对战的功能。系统通过软件编程来实现上述功能。将在硬件设计…...
QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序
环境:Windows 10 64位 Opencv版本:4.5 QT:5.14 QT5 MSVC2017配置OpenCV 版本参考: opencv msvc c对应版本 1.安装MSVC2017(vs2017) 打开Visual Studio Installer,点击修改 选择vs2017生成工…...
windows如何查看自己的ip地址
windows如何查看自己的ip地址 1.打开控制面板 2.进入网络和internet 3.进入网络共享中心 4.点击以太网进入网络详情页,或邮件已连接的网络,点击属性 5.查看ipv4地址就是当前机器ip...
Camera2的使用【详细】
目录 1.获取权限 2. 获取指定相机ID (1)获取相机管理者CameraManager (2)获取相机ID列表 (3)获取相机特征CameraCharacteristics (4)获取相机朝向 3.获取相机输出尺寸 (1)根据相机ID获取相机特征 (2)获取输出流配置StreamConfigurationMap (3)获取输出尺寸数组(参数为…...
Playcanvas后处理-辉光bloom
(一)Bloom介绍 Bloom(辉光、光晕、泛光)是一种常见的摄像机后处理(PostProcessing)效果,用于再现真实世界相机的成像伪影。这种效果会产生从图像中明亮区域边界延伸的光条纹(或羽毛…...
GCC 学习
GCC Resource Center for GCC Internalshttps://www.cse.iitb.ac.in/grc/这是个不错资料网站,有兴趣的可以了解下...
2023数维杯数学建模C题完整版本
已经完成全部版本,获取请查看文末下方名片 摘要 随着人工智能在多个领域的快速发展,其在文本生成上的应用引起了广泛关注。本研究聚焦于辨识人工智能(AI)生成文本的基本规则,并探究AI文本的检测及其与人类文本的区分…...
快速解密PPT幻灯片密码,让PPT重见天日
最简单的办法解密、找回和去除PPT幻灯片密码,具体步骤如下:1.百度搜索【密码帝官网】,2.点击“立即开始”在用户中心上传要解密的文件稍等片刻,就能找回密码。不用下载软件,手机电脑都可用。而且还支持Word、Excel、PD…...
十六、RabbitMQ快速入门
目录 一、在centos上下载MQ镜像 二、安装运行容器 三、登录进入MQ 1、添加一个新的用户 2、新建虚拟机 3、 为用户分配权限 四、RabbitMQ的基本概念 RabbitMQ中的几个概念: 五、常见消息模型 六、简单的消息生产与消费 1、消费者类 2、生产者类 3、基本消息队列的消…...
Origin绘图进阶:别再只用柱状图了,试试这个‘径向堆积条形图’让你的报告脱颖而出
Origin数据可视化革命:用径向堆积条形图打造高辨识度报告 科研工作者和商业分析师们是否已经厌倦了千篇一律的柱状图和折线图?在数据爆炸的时代,如何让您的报告在众多文档中脱颖而出?OriginPro中的径向堆积条形图可能是您一直在寻…...
基于Claude API的智能代码生成工具设计与实现
1. 项目概述:一个被“设计失败”命名的代码生成工具在开发者社区里,项目名称往往承载着创始人的某种情绪或愿景。当你第一次看到designfailure/claudecode这个仓库名时,可能会感到一丝困惑甚至好奇。designfailure(设计失败&#…...
awesome-tui-design:用Markdown设计文档驱动AI构建终端界面
1. 项目概述:当AI遇上终端界面设计 如果你和我一样,是个常年泡在终端里的开发者,肯定有过这样的体验:想用AI助手(比如Cursor、Claude Code或者GitHub Copilot Chat)快速搭建一个命令行工具的原型ÿ…...
AI编程助手如何通过结构化代码分析提升开发效率
1. 项目概述:为AI编程助手装上“透视眼”如果你和我一样,每天都在和Claude、Cursor、Copilot这类AI编程助手打交道,那你一定遇到过这个让人头疼的场景:想让AI帮你修改一个函数,结果它二话不说,直接把整个几…...
手机电源管理芯片技术演进与设计实践
1. 手机电源管理芯片的技术演进作为一名在电源管理领域工作多年的工程师,我见证了手机电源管理芯片从简单分立元件到高度集成PMU的完整发展历程。早期的手机电源设计采用大量分立元件,不仅占用宝贵的PCB空间,还导致整体效率低下。记得2000年初…...
Scikit-learn:从数据到结构——无监督学习的最小闭环
在 Scikit-learn 中,学习无监督学习并不只是学习某个聚类算法或降维方法的调用方式,更重要的是理解:当数据没有现成标签时,如何从一批样本中发现结构、生成结果,并判断这种结构是否具有解释价值。与监督学习不同&#…...
量子计算中的非厄米线性响应理论与薛定谔化技术
1. 量子计算中的非厄米线性响应理论解析在量子计算领域,非厄米系统的研究正逐渐成为前沿热点。传统量子模拟主要关注封闭系统的厄米哈密顿量演化,而现实世界中的量子系统往往与环境存在不可忽略的相互作用,导致系统表现出非厄米特性。这种开放…...
构建AI编程助手记忆系统:本地优先的可观测性与知识沉淀实践
1. 项目概述:为你的AI编程伙伴构建“第二大脑” 如果你和我一样,深度依赖Claude Code这类AI编程助手,那你肯定遇到过这样的场景:上周明明解决过一个棘手的身份验证Bug,但今天遇到类似问题时,却怎么也想不起…...
Linux 编程第一个小程序:进度条
进度条实现原理1. 回车换行的关键区别代码语言:javascriptAI代码解释printf("\r倒计时: %2d", count); // \r 回车:回到行首不换行 printf("\n换行测试"); // \n 换行:移到下一行重要区别:\r&…...
CANN Runtime CntNotify管理API
9. CntNotify管理 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 本章节描述 CANN Runtime 的 CntNotify(计数型通知)管理接口,用于 CntNotify 的创建、记录、等待及…...
