当前位置: 首页 > news >正文

linux redis 字符串增删改查

清屏:

clear

返回上一级目录:

cd ..

数据库

数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
在这里插入图片描述

一、 增 / 改

1.1 单个键值对:set

set key value

示例:
set name zhx
set name "zhx"   //同一个key值,后面的set 会覆盖前面的value
set age 24

1.2 多个键值对:mset

mset key value key value .....

**set**

二、删

2.1 删除:del

del key

示例:
del name
del age

在这里插入图片描述

三、改

3.1 重命名:rename

rename key newname

示例:
rename age TestAge

3.2 数字自增1: INCR

Increment 的缩写,中文表示:“增量”。redis数据库执行后,自增1

  • Redis INCR命令将 key 中储存的数字加上1。

  • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR命令。

  • 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

截图

3.3 数字增加指定值:INCRBY

将 key 中储存的数字加上指定的增量值。

  • Redis INCRBY命令将 key 中储存的数字加上加上指定的增量值。

  • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY命令。

  • 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
    在这里插入图片描述

3.4 数字自减1: DECR

decrease 的缩写,中文表示:“减少”。redis数据库执行后,自减1

  • Redis DECR命令将 key 中储存的数字减少1。

  • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR命令。

  • 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

3.5 数字减少指定值:DECRBY

将 key 中储存的数字减去指定的值。

  • Redis DECRBY 命令将 key 中储存的数字减去指定的值。

  • 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 命令。

  • 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

在这里插入图片描述

3.6 追加:append

如果 key 已经存在并且是一个字符串, append 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, append 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。

四、查

4.1 查询:get

get key

示例:
get name
get age

4.1 多个查询:mget

mget key1 key2

示例:
mget name age ...

4.2 查询所有:keys *

keys *

在这里插入图片描述

4.3 模糊查询:keys xxx*

redis 127.0.0.1:6379> SET runoob1 redis
OK
redis 127.0.0.1:6379> SET runoob2 mysql
OK
redis 127.0.0.1:6379> SET runoob3 mongodb
OK


查找以 runoob 为开头的 key:
redis 127.0.0.1:6379> KEYS runoob*
1) "runoob3"
2) "runoob1"
3) "runoob2"

4.4 批量查询:scan 命令提供了 count 参数,可以控制每次遍历的集合数。

SCAN cursor [MATCH pattern] [COUNT count]

示例:
scan 0 MATCH * COUNT 100 //从游标0开始查,遍历到100
scan 5 MATCH * COUNT 5   //从游标5开始查,遍历到5

由于 Redis 是单线程在处理用户的命令,而 Keys 命令会一次性遍历所有 Key,于是在 命令执行过程中,无法执行其他命令。这就导致如果 Redis 中的 key 比较多,那么 Keys 命令执行时间就会比较长,从而阻塞 Redis。

所以很多教程都推荐使用 Scan 命令来代替 Keys,因为 Scan 可以限制每次遍历的 key 数量。

Count 参数越大,交互次数越少。但是Redis 阻塞时间也会越长,需要取舍。
极限一点,Count 参数和总 Key 数一致时,Scan 命令就和 Keys 效果一样了。

4.5 是否存在:exists

exists key

示例:
exists name

在这里插入图片描述

4.6 查看数据类型:type

type key

示例:
type age

4.7 字符串取部分长度: getrange

getrange key star end

示例:
getrange name 0 6  //取第1~第7个字符
getrange name 3 8	//取第4~第9个字符
getrange name 0 -1	//取所有字符,和 get name 相同的效果

在这里插入图片描述

4.8 先取后存:getset

设置指定 key 的值,并返回 key 的旧值。

redis> GETSET db mongodb    # 没有旧值,返回 nil
(nil)

redis> GET db
"mongodb"

redis> GETSET db redis      # 返回旧值 mongodb
"mongodb"

redis> GET db
"redis"

4.9 字符串长度:strlen

strlen key

五、其他

5.1 设置key生命周期:expire

用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。

expire key 10

在这里插入图片描述

5.2 查看生命周期:ttl、pttl

ttl key   //按秒返回
pttl key  //按毫秒返回

5.3 永久生命周期:persist

persist key

在这里插入图片描述

5.4 将 key 移动到给定的数据库:move

move key db

示例:
move name 1  
  • 如果key不存在,则移动失败
  • 如果两个数据库存在同名key,则不执行移动

在这里插入图片描述

相关文章:

  • 什么是无常损失?
  • 找年龄最大的人
  • Java网络教程的基础简介说明
  • Flask 学习-35.restful-full 自定义错误内容 error_msg 使用
  • Linux连接文件与vim编译器的使用
  • oracle 删除语句(时间范围)
  • CMS垃圾收集器与三色标记算法详解
  • 2022速卖通重点运营策略,商品合规划经营必知
  • 【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码
  • 最新 MySQL 面试笔记解析直接爆砍 39K 月薪,拿走不谢
  • Jenkins实战中的一些技巧
  • webpack定制化 加载与插件[css加载器、html插件、image打包配置、babel代码兼容、vue加载器及配置]
  • 线程与进程的关联
  • Linux环境下fastdfs部署
  • 解锁新技能《Redis SETBIT用法》
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES10 特性的完整指南
  • JAVA SE 6 GC调优笔记
  • Java超时控制的实现
  • java多线程
  • java取消线程实例
  • KMP算法及优化
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • React的组件模式
  • Swift 中的尾递归和蹦床
  • Theano - 导数
  • Vue.js 移动端适配之 vw 解决方案
  • Webpack 4x 之路 ( 四 )
  • windows下使用nginx调试简介
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 创建一个Struts2项目maven 方式
  • 从0实现一个tiny react(三)生命周期
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 汉诺塔算法
  • 漂亮刷新控件-iOS
  • 如何选择开源的机器学习框架?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 时间复杂度与空间复杂度分析
  • 数据仓库的几种建模方法
  • 正则与JS中的正则
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • raise 与 raise ... from 的区别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #微信小程序:微信小程序常见的配置传旨
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (七)Java对象在Hibernate持久化层的状态
  • (算法)求1到1亿间的质数或素数
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Net 6.0 处理跨域的方式
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET6 命令行启动及发布单个Exe文件