Redis-数据类型-String

文章目录

  • 1、通过客户端连接redis
  • 2、查看当前数据库的key的数量
  • 3、切换数据库
    • 3.1、切换到1数据库
    • 3.2、切换到2数据库
    • 3.3、切换到默认的数据库,0数据库
  • 4、当前数据库没有数据
  • 5、添加键值对
  • 6、查看当前库所有key
  • 7、清空当前库
  • 8、设置存活的秒数(例如验证码)
  • 9、nx(Not Exists)参数表示当前命令中指定的key不存在才行
  • 10、xx(Exists)参数表示当前命令中指定的key存在才行
  • 11、把指定的value追加到key对应的原来的值后面,返回值是追加后字符串长度
  • 12、直接返回字符串长度
  • 13、自增1
  • 14、自减1
  • 15、增加多值
  • 16、减少多值
  • 17、从字符串中截取指定的一段,索引从0开始
  • 18、从offset(从0开始的索引)开始使用value进行替换
  • 19、设置key、value时指定存在秒数
  • 20、新建字符串类型的键值对
  • 21、一次性设置一组多个键值对
  • 22、一次性指定多个key,返回它们对应的值
  • 23、一次性新建多个值,但是指定的key存在才行,有一个不存在,都不成功
  • 24、设置新值,同时能够将旧值返回

1、通过客户端连接redis

[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 

2、查看当前数据库的key的数量

127.0.0.1:6379> dbsize
(integer) 0
127.0.0.1:6379> 

3、切换数据库

默认有16个数据库,0到15
在这里插入图片描述

3.1、切换到1数据库

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

3.2、切换到2数据库

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

3.3、切换到默认的数据库,0数据库

127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379> 

4、当前数据库没有数据

127.0.0.1:6379> dbsize
(integer) 0
127.0.0.1:6379> 

5、添加键值对

127.0.0.1:6379> set uname jim
OK
127.0.0.1:6379> dbsize
(integer) 1
127.0.0.1:6379> 

6、查看当前库所有key

127.0.0.1:6379> keys *
1) "uname"
127.0.0.1:6379> 

7、清空当前库

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> dbsize
(integer) 0
127.0.0.1:6379> 

8、设置存活的秒数(例如验证码)

10秒后过期

127.0.0.1:6379> set uname jim ex 10
OK
127.0.0.1:6379> get uname
"jim"
127.0.0.1:6379> get uname
"jim"
127.0.0.1:6379> get uname
(nil)
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> dbsize
(integer) 0
127.0.0.1:6379> 

9、nx(Not Exists)参数表示当前命令中指定的key不存在才行

127.0.0.1:6379> set uname jim
OK
127.0.0.1:6379> get uname
"jim"
127.0.0.1:6379> set uname lucy nx
(nil)
127.0.0.1:6379> 

10、xx(Exists)参数表示当前命令中指定的key存在才行

127.0.0.1:6379> keys *
1) "uname"
127.0.0.1:6379> get uname
"jim"
127.0.0.1:6379> set uname lucy xx
OK
127.0.0.1:6379> get uname
"lucy"
127.0.0.1:6379> 

11、把指定的value追加到key对应的原来的值后面,返回值是追加后字符串长度

127.0.0.1:6379> keys *
1) "uname"
127.0.0.1:6379> get uname
"jim"
127.0.0.1:6379> set uname lucy xx
OK
127.0.0.1:6379> get uname
"lucy"
127.0.0.1:6379> append uname hello
(integer) 9
127.0.0.1:6379> get uname
"lucyhello"
127.0.0.1:6379> 

12、直接返回字符串长度

127.0.0.1:6379> strlen uname
(integer) 9
127.0.0.1:6379> 

13、自增1

127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> incr age
(integer) 19
127.0.0.1:6379> incr age
(integer) 20
127.0.0.1:6379> incr age
(integer) 21
127.0.0.1:6379> incr age
(integer) 22
127.0.0.1:6379> 

14、自减1

127.0.0.1:6379> get age
"22"
127.0.0.1:6379> decr age
(integer) 21
127.0.0.1:6379> decr age
(integer) 20
127.0.0.1:6379> decr age
(integer) 19
127.0.0.1:6379> decr age
(integer) 18
127.0.0.1:6379> 

15、增加多值

127.0.0.1:6379> get age
"18"
127.0.0.1:6379> incrby age 5
(integer) 23
127.0.0.1:6379> 

16、减少多值

127.0.0.1:6379> get age
"23"
127.0.0.1:6379> decrby age 10
(integer) 13
127.0.0.1:6379> 

17、从字符串中截取指定的一段,索引从0开始

127.0.0.1:6379> keys *
1) "age"
2) "uname"
127.0.0.1:6379> get uname
"lucyhello"
127.0.0.1:6379> getrange uname 1 5
"ucyhe"
127.0.0.1:6379> get uname
"lucyhello"

18、从offset(从0开始的索引)开始使用value进行替换

127.0.0.1:6379> get uname
"lucyhello"
127.0.0.1:6379> setrange uname 0 hello
(integer) 9
127.0.0.1:6379> get uname
"helloello"
127.0.0.1:6379> 

19、设置key、value时指定存在秒数

127.0.0.1:6379> keys *
1) "age"
2) "uname"
127.0.0.1:6379> setex address 10 USA
OK
127.0.0.1:6379> keys *
1) "age"
2) "address"
3) "uname"
127.0.0.1:6379> get address
"USA"
127.0.0.1:6379> get address
"USA"
127.0.0.1:6379> get address
"USA"
127.0.0.1:6379> get address
"USA"
127.0.0.1:6379> get address
(nil)
127.0.0.1:6379> keys *
1) "age"
2) "uname"
127.0.0.1:6379> 

20、新建字符串类型的键值对

127.0.0.1:6379> keys *
1) "age"
2) "uname"
127.0.0.1:6379> setnx address usa
(integer) 1
127.0.0.1:6379> keys *
1) "age"
2) "address"
3) "uname"
127.0.0.1:6379> get address
"usa"
127.0.0.1:6379> 

21、一次性设置一组多个键值对

127.0.0.1:6379> keys *
1) "age"
2) "address"
3) "uname"
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4
OK
127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "age"
4) "address"
5) "k2"
6) "k4"
7) "uname"
127.0.0.1:6379> 

22、一次性指定多个key,返回它们对应的值

127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "age"
4) "address"
5) "k2"
6) "k4"
7) "uname"
127.0.0.1:6379> mget k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> 

23、一次性新建多个值,但是指定的key存在才行,有一个不存在,都不成功

127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "age"
4) "address"
5) "k2"
6) "k4"
7) "uname"
127.0.0.1:6379> msetnx k1 v9 k6 v8 k3 v99
(integer) 0
127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "age"
4) "address"
5) "k2"
6) "k4"
7) "uname"
127.0.0.1:6379> 

24、设置新值,同时能够将旧值返回

127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "age"
4) "address"
5) "k2"
6) "k4"
7) "uname"
127.0.0.1:6379> getset k1 v999
"v1"
127.0.0.1:6379> get k1
"v999"
127.0.0.1:6379> 

在这里插入图片描述

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

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

相关文章

适配器模式(大话设计模式)C/C++版本

适配器模式 C #include <iostream> using namespace std; // 球员 class Player { protected:string name;public:Player(string name) : name(name) {}virtual void Attack() 0;virtual void Defense() 0;virtual ~Player() {} }; // 前锋 class Forwards : public P…

odoo 入库发票三大凭证

注意对应科目 库存计价凭证 原材料 成品 供应商账单凭证 银行账单凭证

人工智能驱动材料科学前沿:微软与PNNL联合推进电池材料创新

新型电池技术的研发对实现绿色能源目标具有决定性意义 微软公司与美国太平洋西北国家实验室&#xff08;PNNL&#xff09;近期开展了一项开创性的合作&#xff0c;利用尖端人工智能技术&#xff0c;在极短时间内完成对海量潜在电池材料的系统筛选。 微软和PNNL的研究团队采用了…

6.20学习总结

D - 刻录光盘https://vjudge.net/problem/%E6%B4%9B%E8%B0%B7-P2835 思路&#xff1a; 利用并查集和弗洛伊德&#xff0c;对需要传递的对象都进行标记&#xff0c;经过处理后使他们的父亲发生相应的改变&#xff0c;最后对数组进行查询累加即可 代码&#xff1a; #include<…

SqlSugar有实体CURD应用-C#

本文所述开发环境&#xff1a;.C#、NET8、Visual Studio2022 SqlSugar有实体查询数据表 首先根据《SqlSugar使用DbFirst对象根据数据库表结构创建实体类-C#》中的描述的表结构创建所有表的实体类如下&#xff1a; 表名创建的实体类名tb_studentStudenttb_teacherTeachertb_c…

IOS逆向分析—终极详细(三)

IOS逆向分析—终极详细&#xff08;三&#xff09; 前言一、逆向分析是什么&#xff1f;二、IDA分析1.下载并安装IDA2.安装插件3.加载二进制4.代码分析5.其它 总结 前言 本文是个人完成对IOS上APP分析的整个过程&#xff0c;当然对于不同的机型还会遇到不同的情况&#xff0c;谨…

NSSCTF-Web题目8

目录 [LitCTF 2023]Http pro max plus 1、题目 2、知识点 3、思路 [NSSCTF 2022 Spring Recruit]babyphp 1、题目 2、知识点 3、思路 [LitCTF 2023]Http pro max plus 1、题目 2、知识点 http数据包头部字段 3、思路 打开题目 第一想法就是加上X-forwarded-for字段 …

【BES2500x系列 -- RTX5操作系统】CMSIS-RTOS RTX -- 实时操作系统的核心,为嵌入式系统注入活力 --(一)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…

显卡nvidia的CUDA和cuDNN的安装

显卡版本&#xff0c;和nvidia下载的 CUDA版本和CUDNN的关系 1. 显卡版本 nvidia-smi 硬件环境&#xff1a;显卡版本 4090 NVIDIA-SMI-555.85 我的驱动是510.85.02&#xff0c;驱动附带cuda12.5 2. nvidia下载的cuda版本 nvcc -V 我下载的是cuda12.5 cuda在安装版本过程…

使用宝塔面板搭建Flask项目保姆级喂饭教程

目录 零.前言 一.准备工作 1.1创建requirements.txt文件 1.2将项目打包为压缩文件 1.3租一台服务器 1.4部署宝塔面板 二.宝塔面板(服务器)上的操作 2.1将本地Flask项目上传到服务器 2.2添加Python项目 2.3配置Python项目 2.4配置Nginx 2.5宝塔面板放行端口 2.6在服…

CoRR和arXiv

CoRR和arXiv到底是什么&#xff1f;_corr期刊-CSDN博客文章浏览阅读1.4w次&#xff0c;点赞8次&#xff0c;收藏10次。提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档CoRR和arXiv到底是什么文章目录一、arXiv二、CoRR前言 a…

性能测试-性能监控分析与调优(三)《实战》

性能监控 使用命令监控 cpu瓶颈分析 top命令 在进行性能测试时使用top命令&#xff0c;界面如下 上图可以看出 CPU 概况区&#xff1a; %Cpu(s): us&#xff08;用户进程占用CPU的百分比&#xff09;, 和 sy&#xff08;系统进程占用CPU的百分比&#xff09; 的数值很高…

【Unity设计模式】状态编程模式

前言 最近在学习Unity游戏设计模式&#xff0c;看到两本比较适合入门的书&#xff0c;一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式&#xff0c;因此很值得学习 本…

通过git命令查询某个用户提交信息

要查询某个用户通过 Git 提交了多少行代码&#xff0c;可以使用以下步骤和命令来实现。这些命令将统计该用户的添加和删除的代码行数。 1、切换到你的 Git 仓库&#xff1a; cd /path/to/your/repositorygit命令结果&#xff1a; 2、查询所有用户&#xff1a; git log --pr…

原子性(juc编程)

原子性 概述&#xff1a;所谓的原子性是指在一次操作或者多次操作中&#xff0c;要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断&#xff0c;要么所有的操作都不执行&#xff0c;多个操作是一个不可以分割的整体。 //比如说&#xff1a;你喂你女朋友吃冰淇…

SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion

SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion 文章目录 SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion1. 论文背景1.1 通道独立-通道依赖的区别1.2 论文贡献 2. 模型架构2.1 SOFTS的主要架构2.2 STAR 模…

《QT实用小工具·七十一》基于Qt+Qml开发的文件传输工具

1、概述 源码放在文章末尾 该项目基于QTQML实现了文件传输的功能&#xff0c;可以在局域网环境下使用(热点)&#xff0c;扫描使用UDP&#xff0c;传输使用TCP&#xff0c;每一个文件传输使用独立的线程进行处理&#xff0c;高效便捷。 开发环境 使用Qt/Qml开发 QT版本&#x…

搭建开发模式下的以太坊私有链【Geth:1.14.5】

一、为什么用到私有链&#xff1f; 在以太坊的公有链上部署智能合约、发起交易需要花费以太币。而通过修改配置&#xff0c;可以在本机搭建一套以太坊私有链&#xff0c;因为与公有链没关系&#xff0c;既不用同步公有链庞大的数据&#xff0c;也不用花钱购买以太币&#xff0…

Mybatis中BaseEntity作用

新建各种对象的时候&#xff0c;一般来说&#xff0c;有几个属性是所有对象共有的&#xff0c;比如说id,is_del&#xff0c;is_enable这些&#xff0c;然后设置一个基础对象&#xff0c;以后新建所有对象的时候都继承它&#xff0c;就省的每次都要写这些共有的属性了

生育是家庭和个人的重要的选择

生育是个人和家庭的重要选择&#xff0c;而国家对于生育政策的制定应该综合考虑多种因素&#xff0c;包括人口结构、经济发展和社会稳定等。同时&#xff0c;我们也应该认识到&#xff0c;男女不应该成为决定一个人是否能够生育的因素。男女在生育中扮演着不同的角色&#xff0…