Redis 交互模式

交互模式(Interact Mode)

安装 Redis 时通常连带安装了一个 Redis CLI (apt install redis 或者是 apt install redis-cli 类似的)。在本博客中将会对 redis-cli 中的常用命令做一个使用介绍,下文中以黑色代码块表示在 redis-cli 的实际操作,其中使用 “127.0.0.1:6379>” 字符串表示当前正在输入的命令。注意:本文中仅列出我所使用的常用命令,未必适合所有的人,为了适合索引和使用,应尽可能简约详尽。

1.连接 Connection

在任何命令行中,你可以通过以下命令进入到交互模式/或者说是 Redis 客户端工具。

redis-cli

或者更详细的如下面所示,使用了 Host 和 Port 的参数,用于指定 Redis Server 的主机和端口。

redis-cli -h 127.0.0.1 -p 6379

连接后的状态大概如下,这个时候就进入到了交互模式的最初状态,你的输入将始终显示在 “>” 符号之后。

127.0.0.1:6379> 

2. 认证 Authentication

redis 提供了一些安全措施,其中之一是认证或者是验证用户权限。在 redis.conf 启用 requirepass 配置,下面这个例子是在 redis.conf 中设置了一个 pass 作为认证依据。

# redis.conf
...
requirepass your-password

在设置了 “requirepass” 之后,Redis Server 将拒绝所有未认证的查询。你可以使用以下命令来进行认证。

127.0.0.1:6379> auth your-password 
OK

3. 数据库操作

在 Redis 中,默认情况下有 16 个数据库(编号从 0 到 15)。每个数据库都是相对独立的命名空间,允许用户在同一个 Redis 服务器中存储多个不同的数据集(dataset)。

在连接到 Redis 服务器时,默认使用的是第一个数据库(编号为 0)。可以使用 SELECT 命令切换到其他数据库,例如:

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> 

此时你的提示符变成了 127.0.0.1:6379[1],即意味着当前处于数据库 1 中。

当然你可以使用 CONFIG 命令实时得查到当前的数据库数量,查询结果是一个数组:

127.0.0.1:6379[1]> config get databases
1) "databases"
2) "16"

下面列出一些还可能使用到的数据库操作:

3.1 查看数据库的所有键

127.0.0.1:6379[1]> keys *
1) "key1"
2) "key2"

请注意如果较大的数据库应该避免使用这个命令,这个命令将会遍历整个键空间(Key space),可能会影响数据库的性能。

KEYS 命令还支持使用 glob 模式进行模糊查询,例如:

匹配前缀是 key 的

127.0.0.1:6379[1]> keys key*

匹配包含某个词的

127.0.0.1:6379[1]> keys *word*

匹配以某个字符结尾的

127.0.0.1:6379[1]> keys *d

使用 ? 进行单字符匹配

127.0.0.1:6379[1]> keys *
1) "user:hong:age"
2) "user:xiaoming:age"127.0.0.1:6379[1]> keys user:????:age
1) "user:hong:age"

在这个例子中,设置了两个 key;使用 “????” 匹配四个字符,所以结果“xiaoming” 没有被匹配。

使用字符范围匹配

127.0.0.1:6379[1]> keys *
1) "b"
2) "c"
3) "a"
127.0.0.1:6379[1]> keys [a-z]
1) "b"
2) "c"
3) "a"
127.0.0.1:6379[1]> keys [a-b]
1) "b"
2) "a"
127.0.0.1:6379[1]> keys [a,b]
1) "b"
2) "a"
127.0.0.1:6379[1]> keys [a,b,c]
1) "b"
2) "c"
3) "a"

3.2 其余数据库操作

查看当前数据库中键的数量

127.0.0.1:6379> dbsize
(integer) 5

清空当前数据库

127.0.0.1:6379> flushdb
OK

清空所有数据库

127.0.0.1:6379> flushall
OK

删除键
删除一个名为 key_name 的键,如果没有或者失败,会返回 0,反之则 1

127.0.0.1:6379> del key_name
(integer) 0

判断键是否存在

127.0.0.1:6379> exists key_name
(integer) 0

设置键的过期时间
为 key_name 设置 50 秒的过期时间,单位为秒。键将在指定的时间后自动删除。

127.0.0.1:6379> expire key_name 50
(integer) 1

查看键的过期时间
返回指定键的剩余过期时间,单位为秒。返回 -1 表示键没有设置过期时间,返回 -2 表示键不存在或已过期。

127.0.0.1:6379> ttl key_name
(integer) 55

4. 数据类型操作

在 Redis 中常用的数据类型有字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)。另外有一些较为不常用的:Geospatial、Bitmaps…等。对于不太常用的,在这里不做更多介绍。

Redis 是典型的键值对型数据库,每种类型在 Redis 中都以键值对存储,其中 Value 中的内容有数据类型的差异。其中每一个键值对所表示的数据叫做数据集(dataset)。如果要删除一个数据集,也就是删除这个键,无论这个数据集是何种类型,都可以直接使用 del key_name 的命令进行删除。

以下是一些常见的 Redis 数据结构及其基本的 CRUD 操作(因为未使用提示符,将其中命令统一使用大写表示以优化观感):

  1. 字符串(String):

    • 创建/更新:
      SET key_name "value"
      
    • 读取:
      GET key_name
      
    • 删除:
      DEL key_name
      
  2. 哈希表(Hash):

    • 创建/更新:
      HSET hash_name field_name field_value
      
    • 读取:
      HGET hash_name field_name
      HGETALL hash_name
      
    • 删除:
      HDEL hash_name field_name
      
  3. 列表(List):

    • 创建/更新: 其中 L 是从列表左侧(头部)插入,R 是从列表右侧(尾部)插入
      LPUSH list_name element1 elem2 elem3
      RPUSH list_name element1
      
    • 读取:
      LRANGE list_name start stop
      (LRANGE list_name 0 20)
      
    • 删除:
      从左侧或者右侧弹出若干个元素,默认是 1
      LPOP list_name
      LPOP list_name 3  
      RPOP list_name
      RPOP list_name 3
      
  4. 集合(Set):
    集合不存在重复的元素,所有的 Member 都是唯一的,通常可以使用集合类型去重。

    • 创建/更新:
      SADD set_name member1 member2 ...
      
    • 读取:
      SMEMBERS set_name
      
    • 删除:
      SREM set_name member1
      
  5. 有序集合(Sorted Set):

    • 创建/更新:
      有序集合的元素增加需要给定一个权重值 score
      ZADD zset_name score member
      (ZADD zset1 1 memember1)
      
    • 读取:
      有序集合的读取可以显示 Score 或者不
      ZRANGE zset_name start stop WITHSCORES
      (ZRANGE zset1 0 20 withscores)
      (ZRANGE zset1 0 20)
      
    • 删除:
      ZREM zset_name member
      

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

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

相关文章

Python单元测试框架:pytest常用测试报告类型

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 先前博客有介绍pytest测试框架的安装及使用,现在来聊…

Linux用户提权

新建用户 用root账户修改文件,添加信任用户 使用sudo提权,可以使用 **root删除新建账户**

JavaScript:JQuery.Ajax之错误调试帮助信息

JQuery.Ajax之错误调试帮助信息 代码: $(document).ready(function() {$("#info").click(function() {$.ajax({url: "/v1/getInfo",type: "post",data: { id: 1 },dataType: "json",success: function(msg) {alert(msg);}…

联想小新M7268一体机常用功能和操作步骤

联想小新M7268黑白激光多功能打印一体机,小身材、大智慧,小心M7268身材十分娇小,净尺寸方面为350*275*135mm(长*宽*高)(手工测量),在实际使用时,小新M7268所占空间要略大…

js find方法的使用

JavaScript中的数组find()方法用于查找满足指定条件的第一个数组元素,并返回该元素。 find()方法的语法如下: array.find(callback[, thisArg]) 其中,array是要进行查找的数组,callback是一个回调函数,用于定义查找…

【笔记】认识电机

认识电机 电机一些概念永磁同步电机永磁体定子和转子励磁电磁感应定律 AC Optimal Power Flow功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右Smart…

读论高质量供给引领和创造新需求有感

文章摘要: 自让萨伊提出产品“出卖或需求”的过程是“生产给产品创造需求”3这一被后世称之为“萨伊定律”的论断之后,在古典经济学发展的一百多年里,其成为经济理论和政策的基本依据,阿尔弗雷德马歇尔更是基于此构建了新古典经济…

基于4G数采终端的供热管网在线监测方案

我国大部地区全面进入到冬季,北方各地已开启冬季供暖,以保障居民生活所需。由于城市化的发展,城市内各供热区域愈发分散、供热管道漫长、供热环境复杂,对于供热管网及换热站点的监测和维护提出了诸多挑战。 方案介绍 针对提高供热…

伪协议绕过总结记录(本地文件包含、远程文件包含、SSRF)

目录 本地文件包含&远程文件包含 php://filter String Filters (字符串过): Conversion Filters (转换过滤):

浅析五种 React 组件设计模式

作为一名 React 开发者,你可能会面临下面几个问题: 如何构建一个高复用度性的组件,使其适应不同的业务场景?如何构建一个具有简单 API的组件,使其易于使用?如何构建一个在 UI 和功能方面具有可扩展性的组件…

代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

题目&#xff1a;860.柠檬水找零 文章链接&#xff1a;代码随想录 视频链接&#xff1a;LeetCode:860.柠檬水找零 题目链接&#xff1a;力扣题目链接 图释&#xff1a; class Solution { public:bool lemonadeChange(vector<int>& bills) {unordered_map<int…

知存科技助力AI应用落地:WTMDK2101-ZT1评估板实地评测与性能揭秘

文章目录 一、前言二、深入了解存算一体技术2.1 什么是存算一体2.2 存算一体技术发展历程2.3 基于不同存储介质的存内计算芯片性能比较 三、国产存算一体&#xff0c;重大进展3.1 知存科技&#xff1a;我国存算一体领域的研发领导者 四、知存科技新型 WTM2101 SOC 评估板使用评…

Node.js基础知识点(四)

本节介绍一下最简单的http服务 一.http 可以使用Node 非常轻松的构建一个web服务器&#xff0c;在 Node 中专门提供了一个核心模块&#xff1a;http http 这个模块的就可以帮你创建编写服务器。 1. 加载 http 核心模块 var http require(http) 2. 使用 http.createServe…

虾皮电商 电商平台:虾皮(Shopee)东南亚领先的电子商务平台

在当今数字化时代&#xff0c;电子商务平台的兴起改变了人们的购物方式。虾皮&#xff08;Shopee&#xff09;作为东南亚地区领先的电子商务平台&#xff0c;为消费者提供了便捷、多样化的购物体验。由新加坡的Sea Group&#xff08;前称Garena&#xff09;于2015年创立&#x…

学习c语言,奇偶排序

如果左边是奇数右边是偶数就不管他&#xff0c;如果左边找到偶数右边是奇数则互相交换。

js reduce方法的使用

JavaScript中的数组reduce()方法用于将数组的所有元素通过指定的函数累积为一个值。该方法会对数组元素依次应用指定的回调函数&#xff0c;并返回最终累积的值。 reduce()方法的语法如下&#xff1a; array.reduce(callback[, initialValue]) 其中&#xff0c;array是要累积…

linux简单命令复习

1. 前言&#xff1a; 马上要期末考试了&#xff0c;需要简单复习下linux基本命令&#xff0c;顺便水一篇博客&#xff0c;啊不&#xff0c;写一个总结&#xff0c;总结下课本学习的内容。 2. 基础命令 2.1.文件和目录操作&#xff1a; ls列出当前目录文件、 ls ls -als …

josef 约瑟抗干扰中间继电器 UEG/F-4H 四常开 导轨安装

系列型号 UEG/F-2H2D抗干扰中间继电器;UEG/F-1H1D抗干扰中间继电器; UEG/F-10H-L抗干扰中间继电器;UEG/F-10H-L2抗干扰中间继电器; UEG/F-10HS抗干扰中间继电器;UEG/F-2DPDT抗干扰中间继电器; UEG/F-4DPDT抗干扰中间继电器;UEG/F-8DPDT抗干扰中间继电器; UEG/F-2H抗干扰中间继…

代码随想录 Leetcode18. 四数之和

题目&#xff1a; 代码&#xff08;首刷看解析 2024年1月15日&#xff09;&#xff1a; class Solution { public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> result;sort(nums.begin(), nums.end(…

anxios封装拦截器的两种方式

1. 函数方式 import axios, { AxiosInstance, AxiosRequestConfig } from "axios"; import { Message } from "view-ui-plus";export const createAxiosByinterceptors (config?: AxiosRequestConfig ): AxiosInstance > {const instance axios.cre…