Redis的基础操作

news2024/10/10 14:31:49

目录

一、Redis命令工具

1.redis-cli 命令行工具

2.redis-benchmark测试工具

3.Redis数据库五大类型

1、String

2、List

3、Hash(散列类型)

4、set无序集合

5、sorted set

二、Redis数据库常用命令

1、set与get的使用

2.查看数据库中键的情况

2.1 keys命令

2.2 exists命令

2.3 del命令

2.4 type命令

2.5 rename命令

2.6 dbsize命令

2.7 设置密码

3.多数据库间切换

4.清除数据库内数据

4.1 FLUSHDB

4.2 FLUSHALL


一、Redis命令工具

  • redis-server:用于启动 Redis 的工具
  • redis-benchmark:用于检测 Redis 在本机的运行效率
  • redis-check-aof:修复 AOF 持久化文件
  • redis-check-rdb:修复 RDB 持久化文件
  • redis-cli:Redis 命令行工具

1.redis-cli 命令行工具

语法:redis-cli -h host -p port -a password
-h :指定远程主机
-p :指定 Redis 服务的端口号
-a :指定密码,未设置数据库密码可以省略-a 选项

[root@localhost utils]#redis-cli       ##登录本机redis
127.0.0.1:6379> exit
[root@localhost utils]#redis-cli -h 192.168.21.10 -p 6379   ##登录指定主句redis
192.168.10.100:6379>

2.redis-benchmark测试工具

redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。

基本的测试语法:

redis-benchmark [选项] [选项值]
  • -h :指定服务器主机名。
  • -p :指定服务器端口。
  • -s :指定服务器 socket
  • -c :指定并发连接数。 
  • -n :指定请求数。
  • -d :以字节的形式指定 SET/GET 值的数据大小。
  • -k :1=keep alive 0=reconnect 。
  • -r :SET/GET/INCR 使用随机 key, SADD 使用随机值。
  • -P :通过管道传输<numreq>请求。
  • -q :强制退出 redis。仅显示 query/sec 值。
  • --csv :以 CSV 格式输出。
  • -l :生成循环,永久执行测试。
  • -t :仅运行以逗号分隔的测试命令列表。
  • -I :Idle 模式。仅打开 N 个 idle 连接并等待。

向 IP 地址为 192.168.10.23、端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能

[root@localhost utils]#redis-benchmark -h 192.168.21.10 -p 6379 -c 100 -n 100000

测试存取大小为 100 字节的数据包的性能

redis-benchmark -h 192.168.21.10 -p 6379 -q -d 100

测试本机上 Redis 服务在进行 set 与 lpush 操作时的性能
 

redis-benchmark -t set,lpush -n 100000 -q

3.Redis数据库五大类型

1、String

String是 redis 最基本的类型,最大能存储 512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等。默认是此数据类型

2、List

列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素

3、Hash(散列类型)

hash用于存储对象,可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。

4、set无序集合

元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

5、sorted set

a、有序集合,元素类型为Sting,元素具有唯一性, 不能重复。b、每个元素都会关联–个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同。

二、Redis数据库常用命令

1、set与get的使用

set:存放数据,命令格式为 set key value
get:获取数据,命令格式为 get key

[root@localhost utils]#redis-cli -h 192.168.21.10 -p 6379
192.168.21.10:6379> set kysw 32
OK
192.168.21.10:6379> get kysw
"32"
192.168.21.10:6379>

2.查看数据库中键的情况

 keys    命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用。
 exists  命令可以判断键值是否存在。
 del     命令可以删除当前数据库的指定 key。
 type    命令可以获取 key 对应的 value 值类型。

2.1 keys命令

192.168.21.10:6379> keys *
 1) "g22"
 2) "counter:__rand_int__"
 3) "g1"
 4) "mylist"
 5) "k3"
 6) "g5"
 7) "myset:__rand_int__"
 8) "key:__rand_int__"
 9) "k1"
10) "k2"

2.2 exists命令

exists  可以判断键值是否存在

1  表示存在

0  表示不存在

2.3 del命令

可以删除当前数据库的指定 key

192.168.21.10:6379> keys *
 1) "g22"
 2) "counter:__rand_int__"
 3) "g1"
 4) "mylist"
 5) "k3"
 6) "g5"
 7) "myset:__rand_int__"
 8) "key:__rand_int__"
 9) "k1"
10) "k2"
192.168.21.10:6379> del g1
(integer) 1
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k1"

2.4 type命令

命令可以获取key对应的value值类型

192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k1"
9) "k2"
192.168.21.10:6379> type k1
string

2.5 rename命令

rename 命令是对已有 key 进行重命名。(覆盖)

rename 源key 目标key

 使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。在实际使用过程中,建议先用 exists 命令查看目标 key 是否存在,然后再决定是否执行 rename 命令,以避免覆盖重要数据。

192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k1"
9) "k2"
192.168.21.10:6379> get k1
"1"
192.168.21.10:6379> rename k1 k8
OK
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k2"
9) "k8"
192.168.21.10:6379> get k8
"1"

2.6 dbsize命令

命令的作用是查看当前数据库中 key 的数目。

2.7 设置密码

config set requirepass yourpassword

清空密码

3.多数据库间切换

Redis 支持多数据库,Redis 默认情况下包含 16 个数据库,数据库名称是用数字 0-15 来依次命名的。
多数据库相互独立,互不干扰。

语法:

select 序号

格式:move 键值 序号
192.168.21.10:6379> set k1 100
OK
192.168.21.10:6379> get k1
"100"
192.168.21.10:6379> select 1
OK
192.168.21.10:6379[1]> get k1
(nil)
192.168.21.10:6379[1]> select 0			#切换至目标数据库 0
OK
192.168.21.10:6379> get k1				#查看目标数据是否存在
"100"
192.168.21.10:6379> move k1 1			#将数据库 0 中 k1 移动到数据库 1 中
(integer) 1
192.168.21.10:6379> select 1				#切换至目标数据库 1
OK
192.168.21.10:6379> get k1			#查看被移动数据
"100"
192.168.21.10:6379> select 0
OK
192.168.21.10:6379> get k1				#在数据库 0 中无法查看到 k1 的值
(nil)

4.清除数据库内数据

4.1 FLUSHDB

清空当前数据库数据

4.2 FLUSHALL

清空所有数据库数据,慎用

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

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

相关文章

深度学习:神经网络模型的剪枝和压缩简述

深度学习的神经网路的剪枝和压缩&#xff0c;大致的简述&#xff0c; 主要采用&#xff1a; network slimming&#xff0c;瘦身网络... 深度学习网络&#xff0c;压缩的主要方式&#xff1a; 1.剪枝&#xff0c;nerwork pruing&#xff0c; 2.稀疏表示&#xff0c;sparse rep…

基于向量数据库搭建自己的搜索引擎

前言【基于chatbot】 厌倦了商业搜索引擎搜索引擎没完没了的广告&#xff0c;很多时候&#xff0c;只是需要精准高效地检索信息&#xff0c;而不是和商业广告“斗智斗勇”。以前主要是借助爬虫工具&#xff0c;而随着技术的进步&#xff0c;现在有了更多更方便的解决方案&…

2024-HW --->SSRF

这不是马上准备就要护网了嘛&#xff0c;如火如荼的报名ing&#xff01;&#xff01;&#xff01;那么小编就来查缺补漏一下以前的web漏洞&#xff0c;也顺便去收录一波poc&#xff01;&#xff01;&#xff01;&#xff01; 今天讲的主人公呢就是SSRF&#xff0c;以前学的时候…

QA测试开发工程师面试题满分问答5: 内存溢出和内存泄漏问题

概念阐述 内存溢出&#xff08;Memory Overflow&#xff09;和内存泄漏&#xff08;Memory Leak&#xff09;是与计算机程序中的内存管理相关的问题&#xff0c;它们描述了不同的情况。 内存溢出是指程序在申请内存时&#xff0c;要求的内存超出了系统所能提供的可用内存资源…

不到2000字,轻松带你搞懂STM32中GPIO的8种工作模式

大家好&#xff0c;我是知微&#xff01; 学习过单片机的小伙伴对GPIO肯定不陌生&#xff0c;GPIO &#xff08;general purpose input output&#xff09;是通用输入输出端口的简称&#xff0c;通俗来讲就是单片机上的引脚。 在STM32中&#xff0c;GPIO的工作模式被细分为8种…

N1912A安捷伦N1912A功率计

181/2461/8938产品概述&#xff1a; 安捷伦N1912A双通道P系列宽带功率传感器为R&D和制造工程师提供精确和可重复的功率测量&#xff0c;应用市场包括航空航天和国防&#xff08;雷达&#xff09;、无线通信和无线802.11a/b/g网络。该仪表/传感器组合提供的测量包括峰值功率…

XXLJob中GLUE模式实现在线编写java/shell/python/php/nodejs/powerShell---SpringCloud工作笔记202

1.起因: 之前就一直想实现类似的功能,今天总于找到有可以参考的东西了,这个思路可以帮助实现这种功能. 2.获得灵感 就是:我想实现通过在线编写代码,来扩展我们平台的能力,这样随着业务的扩展,不用我们每次都修改了代码,再去部署,这样就比较麻烦,今天偶尔发现,对于xxljob来说.有…

React 入门

一、官网地址 英文官网: https://reactjs.org/中文官网: https://react.docschina.org/ 二、React 特点 声明式编码组件化编码React Native 编写原生应用高效&#xff08;优秀的 Diffing 算法&#xff09;高效的原因&#xff1a;1.使用虚拟DOM&#xff0c;不总是直接操作页面…

从 Redis 开源协议变更到 ES 国产化:一次技术自主的机遇

引言 近日&#xff0c;Redis Labs 宣布其主导的开源项目 Redis 将采用双重源代码可用许可证&#xff08;RSALv2&#xff09;和服务器端公共许可证&#xff08;SSPLv1&#xff09;。这一重大决策标志着 Redis 从传统的 BSD 许可证向更加严格的控制权转变&#xff0c;同时也引发…

AlexNet网络模型

AlexNet 是一个深度卷积神经网络&#xff0c;由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在 2012 年的 ImageNet 大规模视觉识别挑战赛&#xff08;ILSVRC&#xff09;中首次提出并获得了显著的成功。它是深度学习历史上一个里程碑式的模型&#xff0c;对后来的深…

如何使用PL/SQL Developer工具导出clob字段的表?

1 准备测试数据 导出测试对象&#xff1a;表test_0102&#xff0c;others字段为clob类型 --创建中间表test_0101 create table test_0101( id number, name varchar2(20), others clob);--插入100条测试数据 beginfor i in 1..100 loopinsert into test_0101 values(i,i||_a,l…

文件批量重命名管理,一键将图片的名称进行统一重命名,高效管理文件

在数字时代&#xff0c;我们的生活中充满了各种文件&#xff0c;特别是图片文件。随着时间的推移&#xff0c;我们可能会遇到这样的问题&#xff1a;文件命名不规范&#xff0c;难以快速找到需要的图片。这时&#xff0c;一款强大的文件批量重命名管理工具就显得尤为重要。 首…

JavaScript(一)基础

文章目录 一、JS介绍JavaScript是什么JavaScript书写位置JavaScript的注释输入输出语法字面量 二、变量变量是什么变量基本使用变量的本质变量命名规则与规范变量拓展-数组var与let的区别 三、常量四、数据类型数据类型检测数据类型数据类型转换隐式转换显式转换 简单运算符断点…

git分支-基本分支与合并

问题假设 让我们通过一个简单的分支和合并的例子&#xff0c;演示在实际工作中可能会使用的工作流程。将按照以下步骤进行&#xff1a; 在网站上进行一些工作。为正在开发的新用户故事创建一个分支。在该分支上进行一些工作。 在这个阶段&#xff0c;我们可能会接到一个电话…

LC 144.二叉树的前序遍历

二叉树的前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a; root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a; root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&…

2024年 CS2最佳游戏启动项

引言&#xff1a; Counter-Strike 2&#xff08;CS 2&#xff09;是一款备受瞩目的游戏&#xff0c;而启动选项则是影响游戏性能和体验的关键因素之一。然而&#xff0c;有关所有选项都应该强制使用的说法并不正确。事实上&#xff0c;大多数选项可能对某些计算机并不适用&…

go 指针和内存分配

定义 了解指针之前&#xff0c;先讲一下什么是变量。 每当我们编写任何程序时&#xff0c;我们都需要在内存中存储一些数据/信息。数据存储在特定地址的存储器中。内存地址看起来像0xAFFFF&#xff08;这是内存地址的十六进制表示&#xff09;。 现在&#xff0c;要访问数据…

讲讲你对数据结构-线性表了解多少?

线性表 - 数组和矩阵 当谈到线性表时&#xff0c;数组和矩阵是两种常见的数据结构。 数组&#xff08;Array&#xff09;&#xff1a; 数组是有序的元素集合&#xff0c;可以通过索引来访问和操作其中的元素。它是最简单、最基本的数据结构之一。数组的特点包括&#xff1a; …

ctf_show笔记篇(web入门---SSRF)

ssrf简介 ssrf产生原理&#xff1a; 服务端存在网络请求功能/函数&#xff0c;例如&#xff1a;file_get_contens()这一类类似于curl这种函数传入的参数用户是可控的没有对用户输入做过滤导致的ssrf漏洞 ssrf利用: 用于探测内网服务以及端口探针存活主机以及开放服务探针是否存…

计算机网络:局域网的数据链路层

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…