redis命令

文章目录

  • NoSQL数据库引入
  • NoSQL数据库简介
  • redis6概述和安装
    • 启动方式
    • 相关知识介绍
    • key键操作
    • string
    • list
    • Set
    • hash
    • Zset

NoSQL数据库引入

解决CPU以及内存压力
cookie是一种存储在用户计算机上的小型文本文件,用于跟踪、识别用户和提供个性化的服务。
会话(Session)和Cookie是两种不同的机制用于在Web应用中跟踪用户和存储用户状态信息。

主要区别如下:

  1. 存储位置:Cookie是存储在用户计算机的浏览器中,而会话数据则通常存储在服务端。Cookie通过在浏览器中存储一个唯一的标识符来识别用户,而会话数据存储在服务器上。

  2. 数据容量:Cookie的容量比较小,通常限于几KB左右,而会话数据可以存储更多的信息,因为它存储在服务器上。

  3. 生命周期:Cookie可以设置一个过期时间,使其在指定时间后失效,也可以设置为会话Cookie,关闭浏览器后会自动删除。而会话数据的生命周期通常在用户注销、超时或关闭浏览器时结束。

  4. 安全性:Cookie存储在用户计算机上,因此有一定的安全风险,例如可能被恶意软件获取或窃取。会话数据存储在服务器上,相对更安全,因为用户无法直接访问或修改。

  5. 用途:Cookie主要用于跟踪用户和存储用户的偏好设置、登录状态等信息,以提供个性化的服务。会话数据用于在用户访问网站的不同页面或进行交互时保持用户的状态和数据。

为了解决单点服务器的压力问题,有了分布式服务器。分布式服务器存在着session不共享的问题。解决方法如下:

  • 存在cookie中。缺点是不安全、网络负担效率低。
  • 存在文件服务器或者数据库里。缺点是大量的IO效率问题 。
  • session复制。数据冗余,节点越多,数据冗余越多。
  • 缓存数据库。完全在内存中,速度快,数据结构简单。
    解决IO压力

NoSQL数据库简介

NoSQL(not only sql)泛指非关系型数据库,不依赖业务逻辑方式存储,而以简单的key-value模式存储,大大增加了数据库的扩展能力。

  • 不遵循sql标准

  • 不支持ACID

  • 远超于sql的性能
    使用场景

  • 对数据高并发的读写

  • 海量数据的读写

  • 对数据的高扩展性
    不适用的场景

  • 需要事务支持

  • 基于sql化的结构查询,处理复杂的关系
    一些nosql数据库

Memcache

在这里插入图片描述

Redis

在这里插入图片描述

MongoDB

在这里插入图片描述
列式数据库
在这里插入图片描述
行式数据库
在这里插入图片描述
HBase是Hadoop项目中的数据库,用于需要对大量的数据进行随机、实时的读写操作场景中。
Neo4j图关系型数据库:主要应用于社会关系、公共交通网络;

redis6概述和安装

首先进入官网,下载redis-6.2.13.tar.gz
解压命令:tar -zxvf redis-6.2.13.tar.gz
解压之后进入目录,cd redis-6.2.13
在redis-6.2.13目录下执行make命令
输入make install进行安装,安装成功之后默认存放在/usr/local/bin中
在这里插入图片描述

  • redis-benchmark性能测试工具,可以在自己的笔记本运行,看看性能如何。
  • redis-check-aof修复有问题的AOF文件
  • redis-check-rdb修复有问题的rdb
  • redis-sentinel。redis集群使用
  • redis-server.redis服务器启动命令
  • redis-cli.redis客户端操作入口

启动方式

前台启动(不推荐;前台启动,命令行窗口不能关闭,否则服务器停止)
命令:redis-server

在这里插入图片描述

后台启动
备份redis.conf
拷贝一份redis.conf到其它目录
后台启动设置daemonize no改成yes
修改redis.conf文件里面的daemonize no 改成yes让服务器后台启动
启动服务器
redis-server /opt/redis-6.2.13/redis.conf
启动redis
redis-cli
关闭客户端shutdown(服务器也会被关闭)

在这里插入图片描述

相关知识介绍

  • 默认16个数据库,下标从0开始,初始默认使用0号库;使用命令select 切换库
  • 统一密码管理,所有库的密码一样
  • dbsize查看当前数据库的key的数量,如果存在大量键,线上禁止使用此指令。
  • flushdb清空当前数据库
  • flushall通杀全部库
  • redis是单线程+多路IO复用技术
  • 与Memcache(多线程+锁)三点不同之处:支持多数据类型、支持持久化、单线程+多路IO。

key键操作

查看当前库所有key(keys *)

在这里插入图片描述
还能用来搜索
keys m*[以m开头的key]
在这里插入图片描述

查看某个key是否存在(exists key)存在返回1 ,不存在返回0

在这里插入图片描述

查看key的类型(type key)

在这里插入图片描述

删除指定key的数据

在这里插入图片描述

unlink key根据value选择非阻塞删除,仅将key从keyspace元数据中删除,真正的删除会在后续异步完成

expire key 10(为指定的key设置过期时间单位秒)成功返回1,失败返回0
expireat key timestamp(设置key在某个时间戳 精确到秒之后过期)
pexpire key milliseconds(为指定的key设置过期时间单位毫秒)
persist key去掉过期时间
ttl key查看还有多少秒过期-1表示永不过期、-2表示已过期

在这里插入图片描述

monitor(实时监听并返回redis服务器接收到的所有请求信息)
shutdowm 把数据同步保存到磁盘上并关闭redis服务

save就是在主线程进行"RDB持久化"
在这里插入图片描述

info 查看当前节点信息
在这里插入图片描述

string

  • string 类型是最基本的类型,一个key对应着一个value
  • string类型是二进制安全的,意味着string类型可以包含任何数据,比如jpg图片或者序列化的对象
  • 字符串value的值最多可以是512M

常用命令

  • set key value(设置string类型的键值对key-value,设置相同的key会覆盖原先的内容)
  • get key (获取key对应的value)
    在这里插入图片描述
  • append key value(将给定的key-value加入到原值的末尾,返回新value的长度)
  • strlen key(获取值的长度)
    在这里插入图片描述
  • setnx key value只有当数据库中key不存在时,可以将key-value添加数据库

在这里插入图片描述

  • setex key time value(设置key的过期时间,秒)

在这里插入图片描述

  • inrc key(将key中存储的数据增1,只能对数字值进行操作,若为空则新增为1)
  • derc key(将value值减一)
    在这里插入图片描述
  • incrby/decrby key len (将key中存储的数值增减自定义的长度)
    在这里插入图片描述
    incr等一系列操作是原子性操作(不会被线程调度机制打断的操作),这种操作一旦开始,就一直运行到结束,中间不会切换到另一个线程。
    在单线程中,能够在单条指令中完成的操作可以认为是“原子性操作”
    在多线程中,不能被其它线程打断的操作叫做原子性操作
    redis单命令的原子性得益于redis的单线程
  • mset key1 value1 key2 value2…(批量设置)
  • mget key1 key2 key3 …(批量获取)

在这里插入图片描述

  • msetnx key value key value…(仅当所有的key不存在时,添加成功)

在这里插入图片描述

  • getrange key start end[左闭右闭]
  • setrange key start value(从start位置开始覆盖key的字符串)
    在这里插入图片描述
  • getset key value (设置新值同时获取旧值)

在这里插入图片描述

list

  • lpush/rpush key value value value …/从左边/右边插入一个或多个值(lpush相当于头插法,rpush相当于尾插法)

在这里插入图片描述

  • lpop/rpop key 从左边/右边弹出一个元素(值在建在植无键无,意思就是链表中无值是,链表不存在)

在这里插入图片描述

  • lrange key start stop按照索引下标获得元素(从左到右,0 -1表示取所有的值)
  • rpoplpush key1 key2从列表key1右边吐出一个值加入到列表key2的左边
    在这里插入图片描述
  • lindex key index按照索引下标获得元素(从左到右)
  • llen key获得列表长度
    在这里插入图片描述
  • linsert key before/after value newvalue在value的前面/后面插入newvalue
    在这里插入图片描述
  • lrem key n value 从左边删除n个value从左到右
    在这里插入图片描述
  • lset key index value将列表key下标为index的值替换成value
    在这里插入图片描述
    底层数据结构(quicklist:由ziplist和双向指针连接而成)

Set

redis的set是string类型的无序集合,底层是一个value为null的hash表,添加查找删除的时间复杂度为O(1)

  • sadd key value1 value2将一个或多个member元素加入到集合key中,已经存在的member元素被忽略

  • smembers key取出集合的所有值
    在这里插入图片描述

  • sismember key value 判断集合key是否含有该value值 ,有返回1无返回0

  • scard key 返回集合的元素个数
    在这里插入图片描述

  • srem key value1 value2
    在这里插入图片描述

  • spop key随机从该集合中吐出一个值

  • srandmember key n随即从该集合中取出n个值,不会从集合中删除
    在这里插入图片描述

  • smove k1 k2 value把k1中一个值移动到另一个集合k2
    在这里插入图片描述

  • sinter k1 k2返回两个集合的交集

  • sunion k1 k2返回两个集合的并集

  • sdiff k1 k2返回两个集合的差集
    在这里插入图片描述

hash

string类型的field-value的映射表,适合用于存储对象

  • hset key field value给key集合中的field键赋值value

  • hget key field从key集合中field中取出value

  • hmset key f1 v1 f2 v2…批量设置

  • hmget key k1 k2批量获取值
    在这里插入图片描述

  • hexists key f1查看哈希表key中f1是否存在

  • hkeys key列出哈希集合中所有的field

  • hvals key列出哈希集合中所有的value
    在这里插入图片描述

  • hincrby key field increment给key中field的value增自定义值

在这里插入图片描述

  • hsetnx key field value 将哈希表中的域field的值设置成value,当且仅当field不存在时
    在这里插入图片描述

Zset

与set的相同之处在于都是没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分,评分被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以重复。

  • zadd key score1 value1 score2 value2…将一个或多个member元素及其score加入到有序集合key中
    在这里插入图片描述
  • zrange key start stop [withscores]返回有序集合key中下标在start-stop之间的元素
    在这里插入图片描述
  • zrangebyscore key min max [withscores] 返回有序集合中所有score值位于min和max之间包括等于min或max的成员,有序集合成员按照score值递增排序
  • zrevrangebyscore key max min [withscores] 返回有序集合中所有score值位于min和max之间包括等于min或max的成员,有序集合成员按照score值递减排序
    在这里插入图片描述
  • zinrcby key increment value为元素value的score加上increment
  • zrem key value 删除集合中的指定元素
  • zcount key min max统计集合中scores位于区间内的元素个数
  • zrank key value 返回该值在集合中的排名从0开始
    在这里插入图片描述在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 ElementUI 组件构建无边框 Window 桌面应用(WinForm/WPF)

生活不可能像你想象得那么好,但也不会像你想象得那么糟。 我觉得人的脆弱和坚强都超乎自己的想象。 有时,我可能脆弱得一句话就泪流满面;有时,也发现自己咬着牙走了很长的路。 ——莫泊桑 《一生》 一、技术栈 Vite Vue3 TS E…

VS Code+MinGW 搭建Windows C++开发环境

官方文档是最香香的:https://code.visualstudio.com/docs/cpp/config-mingw 文章目录 1、一些非常不友好的名词1.1 什么TMD是 GNU、MinGW、GCC、gcc、g?1.2 MSVC 2、获取g编译器3、VS Code单文件编译和调试流程3.1 安装插件3.2 单个源文件编译运行3.3 ta…

(1)(1.10) SiK Radio v1

文章目录 前言 1 概述 2 连接无线电台 3 参数说明 前言 本文介绍了如何将 3DR Radio v1 连接到飞行控制器。你还应阅读 SiK Radio v2,其中包含更详细的用户指南和功能列表。 1 概述 3DR 无线电设备是在自动驾驶仪和地面站之间建立遥测连接的最简单方法。 3DR…

HarmonyOS应用事件打点开发指导

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志,难以识别其中的关键信息。因此,应用开发者需要一种数据打点机制,用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent 是在系统层面…

宋仕强论道之华强北存在的价值(二十九)

华强北特点是小快灵,主要服务散布在世界各地游离态的小体量硬件研发生产企业,这种企业也很难找到大一点的供应商来配套,以前覆盖珠三角长三角,现在是辐射世界各地。华强北是一个大集散地,据华强电子网统计,…

ubuntu 18.04 共享屏幕

用于windows远程ubuntu 1. sudo apt install xrdp 2. 配置 sudo vim /etc/xrdp/startwm.sh 把最下面的test和exec两行注释掉,添加一行 gnome-session 3.安装dconf-editor : sudo apt-get install dconf-editor 关闭require encrytion org->gnome->desktop…

【数据结构】五、数组与广义表

目录 一、定义 二、计算数组元素地址 三、稀疏矩阵快速转置 稀疏矩阵的表示 稀疏矩阵快速转置 四、广义表 一、定义 我们所熟知的一维、二维数组的元素是原子类型。广义表中的元素除了原子类型还可以是另一个线性表。当然所有的数据元素仍然属于同一类型。 这里的数组可…

深圳市城市更新区域关注程度分析数据,tiff格式,附数据可视化,精细到区县

基本信息. 数据名称: 深圳市城市更新区域关注程度分析数据 数据格式: tiff 时间版本:2022年 数据几何类型: 无 数据精度:区县 数据坐标系: WGS84 数据来源:网络公开数据 数据可视化. www.bajidata.com

微信小程序-textarea组件字数实时更新

一、前言 本文实现的是在小程序中&#xff0c;textarea文本框输入文字后&#xff0c;实时显示文字的字数&#xff0c;获取更好的用户输入体验以及提示。 下图是实现的效果 二、代码实现 2-1、wxml代码 <view style"padding: 30rpx;"><view style"…

【已解决】解决Springboot项目访问本地图片等静态资源无法访问的问题

今天在开发一个招聘系统的时候&#xff0c;有投递简历功能&#xff0c;有投递就会有随之而来的查看简历对吧&#xff0c;我投递过的简历&#xff0c;另存为一个文件夹&#xff0c;就是说本地磁盘(或者服务器)有一个专门存放投递过的简历的文件夹&#xff0c;用于存放PDF&#x…

Java最全面试题专题---5、Spring面试题(1)

Spring概述&#xff08;10&#xff09; 什么是spring? Spring是一个轻量级Java开发框架&#xff0c;最早有Rod Johnson创建&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack&#xff08;一站式&#xff…

【jvm从入门到实战】(十) 实战篇-内存调优

内存溢出和内存泄漏&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内存泄漏。内存泄漏绝大多数情况都是由堆内存泄漏引起的。少量的内存泄漏可以容忍&#x…

基于Linphone android sdk开发Android软话机

1.Linphone简介 1.1 简介 LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话&#xff08;VOIP&#xff09;系统&#xff0c;其主要如下。使用linphone&#xff0c;开发者可以在互联网上随意的通信&#xff0c;包括语音、视频、即时文本消息。linphone使用SIP协议&#…

云原生系列3-Kubernetes

1、Kubernetes概述 k8s缩写是因为k和s之间有八个字符。k8s是基于容器技术的分布式架构方案。官网&#xff1a;https://kubernetes.io/zh-cn/ Google在 2014年开源了Kubernetes项目&#xff0c;Kubernetes是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。同样类似的…

拥抱鸿蒙 - 在展讯T606平台上的探索与实践

前 言 自OpenHarmony 问世后受到了社会各界的广泛关注&#xff0c;OpenHarmony 的生态系统在如火如荼的发展。 酷派作为一家积极拥抱变化的公司&#xff0c;经过一段时间的探索与实践&#xff0c;成功实现将OpenHarmony 系统接入到展讯平台上&#xff0c;我们相信这是一个重要…

华为麒麟系统与鸿蒙系统:发展历程、问题解决与未来展望

导言 华为作为全球领先的科技企业&#xff0c;其自主研发的麒麟系统和鸿蒙系统备受瞩目。本文将深入研究这两者的发展历程、遇到的问题、解决过程&#xff0c;探讨未来的可用范围以及在全球的应用和研究趋势&#xff0c;进一步探讨在哪些方面能取胜&#xff0c;并在哪些领域发力…

芯知识 | WT2003HP8-32N语音芯片采用QFN32形式小体积封装的应用优势介绍

唯创知音WT2003HP8-32N高品质MP3音频语音芯片&#xff0c;以其QFN32&#xff08;44毫米&#xff09;封装的应用优势&#xff0c;在音频处理领域独树一帜。这款芯片不仅体积小巧&#xff0c;而且功能强大&#xff0c;适用于多种应用场景。 一、高品质音频处理 唯创知音WT2003HP…

阿里云ECS配置IPv6后,如果无法访问该服务器上的网站,可检查如下配置

1、域名解析到这个IPv6地址,同一个子域名可以同时解析到IPv4和IPv6两个地址&#xff0c;这样就可以给网站配置ip4和ipv6双栈&#xff1b; 2、在安全组规则开通端口可访问&#xff0c;设定端口后注意授权对象要特殊设置“源:::/0” 3、到服务器nginx配置处&#xff0c;增加端口…

pip 常用指令 pip download 命令用法介绍

pip download 是一个用于从Python包索引(PyPI)下载Python包的命令行工具。它可以下载特定版本的包&#xff0c;或者下载满足特定条件的所有包。 命令 pip download 的参数包括 -d 或 --dest&#xff1a;指定下载文件的保存路径。-r 或 --requirement&#xff1a;从一个需求文…

百度侯震宇详解:大模型将如何重构云计算?

12月20日&#xff0c;在2023百度云智大会智算大会上&#xff0c;百度集团副总裁侯震宇以“大模型重构云计算”为主题发表演讲。他强调&#xff0c;AI原生时代&#xff0c;面向大模型的基础设施体系需要全面重构&#xff0c;为构建繁荣的AI原生生态筑牢底座。 侯震宇表示&…