【redis】redis简单入门

1、简介

  • 定义:Redis是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
  • 特点
    1. 高性能:读写速度非常快,支持每秒执行数十万次读写操作。
    2. 基于内存:所有数据都存储在内存中,使得数据访问非常迅速。
    3. 数据结构丰富:支持多种数据类型,如字符串(string)、列表(list)、集合(set)、有序集合(sorted set)和哈希(hash)。
    4. 支持持久化:可以将内存中的数据定期写入磁盘,以保证数据的持久性。

2、安装

参考往期文章:【redis】redis安装-CSDN博客

  • Windows系统:虽然Redis官网对Windows版本的支持有限,但仍有第三方提供的Windows版本可供使用。安装时,只需解压并运行相应的可执行文件即可。
  • Linux系统:在Linux上安装Redis通常涉及下载源码包、编译和安装等步骤。也可以通过包管理器(如apt、yum等)直接安装。

3、Redis服务启动与停止

  • 启动:在Windows上,可以通过双击redis-server.exe启动服务;在Linux上,可以通过命令行运行redis-server命令启动服务。
  • 停止:在Windows上,可以通过Ctrl+C停止服务;在Linux上,可以通过发送SIGINT信号或使用redis-cli shutdown命令停止服务。

4、连接Redis

  • 使用redis-cli命令连接Redis服务。在本地连接时,只需输入redis-cli
  • 如果Redis服务运行在其他主机上,需要指定主机名和端口号,如redis-cli -h <hostname> -p <port>

5、Redis常用命令

5.1基础操作

  • 设置键值对
    • SET key value: 设置键的值。
    • SETNX key value: 如果键不存在,则设置键的值。
  • 获取键值
    • GET key: 获取键的值。
    • MGET key1 key2 ...: 获取多个键的值。
  • 删除键值
    • DEL key1 key2 ...: 删除一个或多个键。
  • 键的存在性
    • EXISTS key: 检查键是否存在。
  • 键的过期时间
    • EXPIRE key seconds: 设置键的过期时间(秒)。
    • TTL key: 获取键的剩余生存时间(秒)。

5.2数据类型操作

字符串(String)
  • APPEND key value: 将值追加到键的当前值。
  • INCR key: 将键的值加 1。如果键不存在,则设置键的值为 1。
  • DECR key: 将键的值减 1。如果键不存在,则设置键的值为 -1。
列表(List)
  • LPUSH key value1 value2 ...: 将一个或多个值插入到列表的左侧。
  • RPUSH key value1 value2 ...: 将一个或多个值插入到列表的右侧。
  • LPOP key: 移除并获取列表的左侧第一个元素。
  • RPOP key: 移除并获取列表的右侧第一个元素。
  • LRANGE key start stop: 获取列表指定范围内的元素。
集合(Set)
  • SADD key member1 member2 ...: 将一个或多个成员添加到集合中。
  • SREM key member1 member2 ...: 从集合中移除一个或多个成员。
  • SMEMBERS key: 返回集合中的所有成员。
  • SISMEMBER key member: 检查成员是否存在于集合中。
有序集合(Sorted Set)
  • ZADD key [NX|XX] [CH] [INCR] score1 member1 [score2 member2 ...]: 将一个或多个成员及其分数添加到有序集合中。
  • ZREM key member1 member2 ...: 从有序集合中移除一个或多个成员。
  • ZRANGE key start stop [WITHSCORES]: 返回有序集合中指定范围内的成员及其分数。
  • ZRANK key member: 返回有序集合中成员的排名(从 0 开始)。
哈希(Hash)
  • HSET key field value: 将哈希表 key 中的字段 field 的值设为 value。
  • HGET key field: 获取哈希表 key 中给定字段 field 的值。
  • HDEL key field1 field2 ...: 删除哈希表 key 中的一个或多个字段。
  • HGETALL key: 获取哈希表 key 中所有的字段和值。

5.3服务器命令

  • PING: 测试服务器是否正在运行。
  • INFO: 提供有关服务器的信息和统计。
  • FLUSHALL: 删除所有数据库的所有键。
  • FLUSHDB: 删除当前数据库的所有键。
  • SAVE: 将数据同步保存到磁盘。
  • SHUTDOWN: 停止 Redis 服务器。

5.4脚本和事务

  • EVAL script numkeys key1 key2 ... arg1 arg2 ...: 执行 Lua 脚本。
  • MULTI: 标记一个事务块的开始。
  • EXEC: 执行所有之前通过 MULTI 命令进入事务块的命令。
  • DISCARD: 取消事务,放弃执行事务块内的所有命令

5.5订阅与发布

  • SUBSCRIBE channel [channel ...]: 订阅一个或多个频道。
  • PUBLISH channel message: 将消息发送到指定的频道。
  • UNSUBSCRIBE [channel [channel ...]]: 退订一个或多个频道。

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

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

相关文章

Springboot下使用Redis管道(pipeline)进行批量操作

之前有业务场景需要批量插入数据到Redis中&#xff0c;做的过程中也有一些感悟&#xff0c;因此记录下来&#xff0c;以防忘记。下面的内容会涉及到 分别使用for、管道处理批量操作&#xff0c;比较其所花费时间。 分别使用RedisCallback、SessionCallback进行Redis pipeline …

Swoole实践:如何使用协程构建高性能爬虫

随着互联网的普及&#xff0c;web爬虫已经成为了一个非常重要的工具&#xff0c;它可以帮助我们快速地抓取所需要的数据&#xff0c;从而降低数据获取成本。在爬虫的实现中&#xff0c;性能一直是一个重要的考虑因素。swoole是一款基于php的协程框架&#xff0c;它可以帮助我们…

Mathematica训练课(44)-- 一些符号#,,//, /. 的整理

①“//”在后面写成你要执行的操作,即可执行。 注意:这一函数作用域标志的优先级是很靠后的,也就是说它会对一整行式子作用。 ②@的作用是在@后面的第一个元素进行操作 Sqrt @ a(*@作用在@后面、对离@最近的仅仅一个元素作用*) 例如,下面 若作用对象外面套着{},那么就要…

向openHarmony设备添加gdb调试工具

1. 下载gdb源码 国内从官网下载源码比较慢&#xff0c;可以从清华的镜像网站&#xff08;清华大学开源软件镜像站 | Tsinghua Open Source Mirror&#xff09;上下载。下载地址&#xff1a; Index of /gnu/gdb/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 选择…

centos下安装ffmpeg的详细教程

0.ffmpeg介绍 FFmpeg 是一个开源的多媒体框架&#xff0c;用于处理音频、视频和其他多媒体文件。它提供了录制、转换和流式传输音频和视频功能。FFmpeg 是一个非常强大和灵活的工具&#xff0c;广泛应用于媒体转换、视频编辑、流媒体传输等领域。 1.准备压缩包 链接&#xff1…

总结:Hadoop高可用

当Hadoop的NameNode宕机时&#xff0c;可以采取以下步骤来解决问题&#xff1a; 重新启动NameNode&#xff1a;尝试重新启动NameNode服务&#xff0c;有时候它可能会自行恢复正常运行。 恢复NameNode备份&#xff1a;如果启动NameNode失败&#xff0c;可以尝试恢复之前备份的N…

网络研究观:网络犯罪简报

通过犯罪研究人员精选的新闻提要了解最新的全球网络犯罪威胁。 了解不同的数字欺诈以及如何保护自己。 1&#xff1a;NIA 指控五人涉嫌国际人口贩卖和网络诈骗 印度国家调查局指控五名嫌疑人涉嫌一起重大人口贩卖和网络诈骗案&#xff0c;该案涉及印度青年被迫进入老挝的诈骗…

Python中常用的有7种值(数据)的类型及type()语句的用法

目录 0.Python中常用的有7种值&#xff08;数据&#xff09;的类型Python中的数据类型主要有&#xff1a;Number&#xff08;数字&#xff09;、Boolean&#xff08;布尔&#xff09;、String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Tuple&#xf…

使用java代码实现GUI画面的简易项目操作

要使用Java创建一个图形用户界面&#xff08;GUI&#xff09;&#xff0c;我们可以使用Swing库&#xff0c;它是Java提供的一个标准GUI工具包。以下是一个简单的Java Swing程序示例&#xff0c;它创建了一个窗口&#xff08;JFrame&#xff09;&#xff0c;并在其中添加了一个标…

SQL中group by详解

在 SQL 中&#xff0c;GROUP BY 语句用于将结果集按照一个或多个列进行分组。 其基本语法为&#xff1a; SELECT column1, column2, aggregate_function(column3) FROM table_name GROUP BY column1, column2;以下是对其主要部分的详细解释&#xff1a; GROUP BY 子句后面跟…

我重生了,学会了珂朵莉树

还玩线段树吗&#xff1f; 前言&注明 我好像一万年没更新了&#xff1f; 化学&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

【408考点之数据结构】树和森林的基本概念、二叉树转森林、以及树和森林的遍历

树和森林的基本概念、二叉树转森林、以及树和森林的遍历 一、树和森林的基本概念 树&#xff08;Tree&#xff09; 是一种重要的非线性数据结构&#xff0c;由n(n≥0)个节点组成&#xff0c;其中有一个根节点和若干子树&#xff0c;这些子树又是若干树的集合。 森林&#xf…

检索增强生成 (RAG):揭开这一术语的神秘面纱并解释其带来的价值

一、介绍 如今&#xff0c;数据已成为新的黄金&#xff0c;而高效筛选这些丰富信息的能力则是成功企业脱颖而出的关键。Retrieval Augmented Generation&#xff08;RAG&#xff09;是创新的标杆&#xff0c;尤其是在知识管理领域。它不再只是为了存储信息&#xff0c;而是为了…

在运行中遇到扫描包问题

问题描述&#xff1a;当我们看到这个上面一行代码时就代表我们有个包没有被当前的Spring容器给扫描到&#xff0c;关于这个问题我们有两个&#xff1a;第一把整个包导进来&#xff0c;第二用哪个导哪个

Linux Swap

Swap: 页面换出&#xff1a;就是在 Swap 机制下&#xff0c;当内存资源紧张时&#xff0c;内核就会把不经常使用的这些匿名页中的数据写入到 Swap 分区或者 Swap 文件中。从而释放这些数据所占用的内存空间。 页面换入&#xff1a;就是当进程再次访问那些被换出的数据时&…

《人生苦短,我用python·六》ctypes 封装 C++ 接口并在 Python 中调用

编写 C 代码 首先&#xff0c;编写一个简单的 C 函数并将其编译成 DLL 动态链接库 // mylib.cpp #include <iostream>extern "C" {__declspec(dllexport) int add(int a, int b) {return a b;} }编写 C 头文件 虽然在这个简单示例中头文件不是必需的&#xf…

7 个不容忽视的开源安全工具

专业人士选择的第一个工具通常是开源选项,因为它们得到了广泛社区的保证和支持。此代码是支持安全可靠的互联网的基础的一部分。 最近,XZ Utils 等丑闻让用户犹豫不决。开放性是否是攻击的危险载体?还有其他问题在等着他们吗? 辩护者指出,虽然开放性可以让某些攻击变得更…

深度学习实战82-新的研究方向:大模型与图模型结合生成大型图模型,大图模型相关挑战和机遇的观点

大家好,我是微学AI,今天给大家介绍一下深度学习实战82-新的研究方向:大模型与图模型结合生成大型图模型,大图模型相关挑战和机遇的观点。随着人工智能的飞速发展,大型模型已成为人工智能领域最新的突破性成就。在图方面,大型模型尚未取得与自然语言处理和计算机视觉等其他…

java:aocache 0.4.0 缓存控制机制

aoocache发布第一个版本0.1.0时&#xff0c;没有考虑到使用aocache的项目对方法缓存的控制需求。 场景 给同事做培训时&#xff0c;同事提到这个需求&#xff0c;他希望能够有方法主动去清理指定方法的缓存&#xff1a; 他的数据是由其他服务启动时提供的&#xff0c;他的方法…

Python基础语法:自定义函数

在Python中&#xff0c;自定义函数允许你创建自己的函数来执行特定的任务。这些函数可以接受参数&#xff0c;执行一系列操作&#xff0c;并返回结果。以下是创建和使用自定义函数的基本步骤&#xff1a; 定义函数 使用def关键字来定义一个函数。函数定义的基本语法如下&…