首页 > 数据库 >redis数据库操作指令

redis数据库操作指令

时间:2024-10-26 10:32:23浏览次数:1  
标签:返回 设置 数据库 元素 redis value 指令 key 返回值

一、数据库操作指令

2、redis中库说明

对于一个redis服务而言,包含默认有16个数据库给我们使用,从0开始编号,共15号数据库,默认使用的是0号数据库
切换库,select 库号 举例:使用1号库:select 1
库和库之间数据不共享
库和库之间的键可以重名

2、redis中清空库的指令

  • 清空当前库

flushdb

  • 清空全部库

flushall

3、redis客户端显示中文

redis-cli -h localhost -p 7000 --raw

二、操作key相关指令

1、DEL指令

  • 语法 : DEL key [key ...]
  • 作用 : 删除给定的一个或多个key 。不存在的key 会被忽略。多个key之间使用空格隔开
  • 可用版本: >= 1.0.0
  • 返回值: 被删除key 的数量。

2、exists指令

  • 语法: EXISTS key [key ...]
  • 作用: 检查给定key 是否存在。多个key之间使用空格隔开,只要有一个key存在,返回值就是1 新版本中会提示几个键存在
  • 可用版本: >= 1.0.0
  • 返回值: 若key 存在,返回的是存在的个数。

3、EXPIRE 只能对已经存在的key设置过期时间

  • 语法: EXPIRE key seconds
  • 作用: 为给定key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除。
  • 可用版本: >= 1.0.0
  • 时间复杂度: O(1)
  • 返回值:设置成功返回1 。

4、KEYS

  • 语法 : KEYS pattern
  • 作用 : 查找所有符合给定模式pattern 的key 。
  • 语法:
    KEYS * 匹配数据库中所有key 。
    KEYS h?llo 匹配hello ,hallo 和hxllo 等。
    KEYS h*llo 匹配hllo 和heeeeello 等。
    KEYS h[ae]llo 匹配hello 和hallo ,但不匹配hillo 。特殊符号用 "" 隔开
  • 可用版本: >= 1.0.0
  • 返回值: 符合给定模式的key 列表。

5、MOVE

  • 语法 : MOVE key db (move name 1----将name键移动到1号库)
  • 作用 : 将当前数据库的key 移动到给定的数据库db 当中。
  • 可用版本: >= 1.0.0
  • 返回值: 移动成功返回1 ,失败则返回0 。

6、PEXPIRE

  • 语法 : PEXPIRE key milliseconds
  • 作用 : 这个命令和EXPIRE 命令的作用类似,但是它以毫秒为单位设置key 的生存时间,而不像EXPIRE 命令那样,以秒为单位。
  • 可用版本: >= 2.6.0
  • 时间复杂度: O(1)
  • 返回值:设置成功,返回1 key 不存在或设置失败,返回0

7、PEXPIREAT

  • 语法 : PEXPIREAT key milliseconds-timestamp
  • 作用 : 这个命令和EXPIREAT 命令类似,但它以毫秒为单位设置key 的过期unix 时间戳,而不是像EXPIREAT那样,以秒为单位。
  • 可用版本: >= 2.6.0
  • 返回值:如果生存时间设置成功,返回1 。当key 不存在或没办法设置生存时间时,返回0 。(查看EXPIRE 命令获取更多信息)

8、TTL(time to live)

  • 语法 : TTL key
  • 作用 : 以秒为单位,返回给定key 的剩余生存时间(TTL, time to live)。
  • 可用版本: >= 1.0.0
  • 返回值:
    当key 不存在时,返回-2 。
    当key 存在但没有设置剩余生存时间时,返回-1 。
    否则,以秒为单位,返回key 的剩余生存时间。
  • Note : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 。

9、PTTL

  • 语法 : TTL key
  • 作用 : 以秒为单位,返回给定key 的剩余生存时间(TTL, time to live)。
  • 可用版本: >= 1.0.0
  • 返回值:
    当key 不存在时,返回-2 。
    当key 存在但没有设置剩余生存时间时,返回-1 。
    否则,以秒为单位,返回key 的剩余生存时间。
  • Note : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 。

10、RANDOMKEY

  • 语法 : RANDOMKEY
  • 作用 : 从当前数据库中随机返回(不删除) 一个key 。
  • 可用版本: >= 1.0.0
  • 返回值:当数据库不为空时,返回一个key 。当数据库为空时,返回nil 。

11、RENAME

  • 语法 : RENAME key newkey
  • 作用 : 将key 改名为newkey 。当key 和newkey 相同,RENAME 命令将覆盖旧值。如果键不存在,才报错
  • 可用版本: >= 1.0.0
  • 返回值: 改名成功时提示OK ,失败时候返回一个错误。

12、TYPE

  • 语法 : TYPE key
  • 作用 : 返回key 所储存的值的类型。
  • 可用版本: >= 1.0.0
  • 返回值:
    none (key 不存在)
    string (字符串)
    list (列表)
    set (集合)
    zset (有序集)
    hash (哈希表)

二、五大数据类型

1、String类型

内存存储模型

常用操作命令

命令 说明
set 设置一个key/value
get 根据key获得对应的value
mset 一次设置多个key value
mget 一次获得多个key的value
getset 获得原始key的值,同时设置新值
strlen 获得对应key存储value的长度
append 为对应key的value追加内容
getrange 索引0开始,截取value的内容 到末尾-1 [开始,结束]
setex 设置一个key存活的有效期(秒)
psetex 设置一个key存活的有效期(毫秒)
setnx 存在不做任何操作,不存在添加
msetnx 可以同时设置多个key,只有有一个存在都不保存
decr 进行数值类型的-1操作
decrby 根据提供的数据进行减法操作
Incr 进行数值类型的+1操作
incrby 根据提供的数据进行加法操作
Incrbyfloat 根据提供的数据加入浮点数(不是四舍五入)

2、List类型

list列表相当于Java中的list集合
特点:元素有序,可以重复
key是字符串 value是list

内存存储模型

常用操作指令

命令 说明
lpush 将某个值加入到一个key列表头部 lpush list1 xiaohu xiaohei xiaoming 当列表不存在的时候会进行创建
lpushx 同lpush,但是必须要保证这个key存在 必须在列表进行存在的情况下从左插入
rpush 将某个值加入到一个key列表末尾
rpushx 同rpush,但是必须要保证这个key存在
lpop 返回和移除列表左边的第一个元素
rpop 返回和移除列表右边的第一个元素
lrange 获取某一个下标区间内的元素 lrange list 0 -1
llen 获取列表元素个数
lset 设置某一个指定索引的值(索引必须存在)
lindex 获取某一个指定索引位置的元素
lrem 删除重复元素
ltrim 保留列表中特定区间内的元素
linsert 在某一个元素之前,之后插入新元素

3、Set类型

内存存储模型

常用命令

sadd 为集合添加元素
smembers 显示集合中所有元素 无序
scard 返回集合中元素的个数
spop 随机返回一个元素 并将元素在集合中删除
smove 从一个集合中向另一个集合移动元素 必须是同一种类型
srem 从集合中删除一个元素
sismember 判断一个集合中是否含有这个元素
srandmember 随机返回元素 后面可以加数字 表示每次返回的个数
sdiff 去掉第一个集合中其它集合含有的相同元素
sinter 求交集
sunion 求和集

4、ZSet类型

特点:可排序的set集合,不可重复

内存模型

常用命令

zadd 添加一个有序集合元素 zadd zset 2 xiaohu 3 xiaohu2
zcard 返回集合的元素个数
zrange 升序 zrevrange 降序 返回一个范围内的元素 如果想看看分数 withscores
zrangebyscore 按照分数查找一个范围内的元素 zrangebyscore zset 0 20 withscores limit 0 2
zrank 返回排名
zrevrank 倒序排名
zscore 显示某一个元素的分数
zrem 移除某一个元素
zincrby 给某个特定元素加分

5、Hash类型

内存模型

常用命令

hset 设置一个或多个key/value对
hget 获得一个key对应的value
hgetall 获得所有的key/value对
hdel 删除某一个key/value对
hexists 判断一个key是否存在
hkeys 获得所有的key
hvals 获得所有的value
hmset 设置多个key/value
hmget 获得多个key的value
hsetnx 设置一个不存在的key的值
hincrby 为value进行加法运算(只能针对数值做运行)
hincrbyfloat 为value加入浮点值

标签:返回,设置,数据库,元素,redis,value,指令,key,返回值
From: https://www.cnblogs.com/w-ll/p/18503330

相关文章

  • 推荐15个 Vue 常用自定义指令,含实现原理与使用方式
    前言Vue.js是一个流行的前端框架,它的核心理念是通过指令(Directives)来扩展HTML的能力。尽管Vue.js已经内置了一些非常实用的指令(比如v-if,v-show,v-for等),但有时候我们还是需要创建自定义指令来满足特定的需求。今天我们就来聊聊Vue常用的自定义指令,它们能让你的......
  • Redis
    Redis基础是什么(定义,特点)开源的基于内存的数据库(内疚多缘分)基于内存:读写速度快,适用于高性能应用场景,如缓存持久化:把数据存储到磁盘,方式有AOF日志,RDB快照等多数据结构:列表、哈希、集合等,灵活的应对不同场景原子性操作:支持原子性操作,维护并发环境下数据一致性分布式:提供......
  • 分布式数据库的魔力
    分布式数据库的魔力在这个信息爆炸的时代,你是否曾好奇过,支撑着我们日常生活中各类服务的那些看似“无形”的科技背后,究竟有怎样的秘密?分布式数据库,就是其中一个重要的谜底。它不仅让数据存储和管理变得更加灵活、聪明,还为企业解决了许多棘手的问题。在这篇文章中,我们将一起......
  • Redis面试题扩展
    一、redis特性1、内存数据快,快,很快...2、工作单线程worker,串行化、原子操作,(IO线程是多线程)-避免上下文切换3、IO模型(epoll),天生支撑高并发4、kv模型,v具有类型结构5、具有本地方法,计算向数据移动。(a,b)=>交集6、二进制安全,Value最大512M二、Redis是单线程还是多线......
  • Redis基础知识(学习笔记1--五种基础数据结构)
    Redis,Remote Dictionary Server,远程字典服务。Redis的性能极高:其读的速度可以达到11W/s,写的速度可以到达8W/s。高性能的原因(1)操作在内存中发生;(2)C语言开发;(3)源码简单精细(集性能与优雅于一身),早期版本源码只有2W行左右,从3.0版本(开始支持cluster),代码变成了5W左右。Redis有5种......
  • 苍穹外卖 将菜品缓存到Redis
        CategoryController,用户端查询分类id及其分类下对应的菜品,假如是第一次查询,那么就从数据库中查询并加入redis缓存中,若不是第一次查询,那么直接从redis中查询,不再查询数据库。//redis缓存菜品,减少数据库的查询//在数据库中查找属于IO,假如有很多用户同时访问,那么......
  • 基于SpringBoot + Vue + MySQL 实现平行志愿录取系统(数据库设计&毕业设计)
    一、需求分析        平行志愿录取系统是一种用于高等院校招生录取的志愿填报和录取方式,旨在提高录取的公平性和科学性,确保考生能够在选择志愿时有更大的灵活性和机会。下面详细分析平行志愿录取系统的定义、功能以及其优缺点。志愿录取系统功能:志愿填报:考生可以......
  • 【MySQL】数据库事务管理
    W...Y的主页......
  • caffe为什么要使用lmdb数据库
    caffe要使用lmdb数据库的原因有:1、性能高;2、安全性好;3、空间利用率高。LMDB采用内存映射(Memory-Mapped)的方式,可以快速读取和写入大量数据。Caffe选择LMDB作为数据存储的方式,主要是因为LMDB的高性能和高空间利用率。在深度学习训练过程中,需要频繁读取和写入大量数据,LMDB的内存映射......
  • Redis 安装部署与基础学习
    Redis安装部署与学习一、简介Redis(RemoteDictionaryServer)是一个开源的内存数据库,遵守BSD协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。也就是说redis数据库与我们之前学的MySQL,ClickHouse都不一样,是一个非关系型数据库。总......