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、基本消息队列的消…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
