阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Redis基本操作相关命令集锦

120次阅读
没有评论

共计 3540 个字符,预计需要花费 9 分钟才能阅读完成。

Redis 简介

  • Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
  • Redis 是 NoSQL 技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色

默认端口:6379

默认数据库:16 个

服务器端命令:redis-server

客户端命令:redis-cli

切换数据库:select  0~15  例如:select  2  就是切换到 2 号数据库

redis 每条数据都是⼀个键值对,值的类型分为五种:

  • 字符串 string
  • 哈希 hash
  • 列表 list
  • 集合 set
  • 有序集合 zset

string 类型

保存

如果设置的键不存在则为添加,如果设置的键已经存在则修改

  • 设置键值

    set key value

  • 例 1:设置键为 name 值为 itcast 的数据

    set name itcast

  • 设置键值及过期时间,以秒为单位

    setex key seconds value

  • 例 2:设置键为 aa 值为 aa 过期时间为 3 秒的数据

    setex aa 3 aa

  • 设置多个键值

    mset key1 value1 key2 value2 …

  • 例 3:设置键为 ’a1’ 值为 ’Python’、键为 ’a2’ 值为 ’Java’、键为 ’a3’ 值为 ’c’

    mset a1 python a2 java a3 c

  • 追加值

    append key value

  • 例 4:向键为 a1 中追加值 ’ haha’

    append a1 haha

获取

  • 获取:根据键获取值,如果不存在此键则返回 nil

    get key

  • 例 5:获取键 ’name’ 的值

    get name

  • 根据多个键获取多个值

    mget key1 key2 …

  • 例 6:获取键 a1、a2、a3’ 的值

    mget a1 a2 a3

删除

  • 删除键及对应的值

    del key1 key2 …

  • 例 7:删除键 a2、a3

    del a2 a3

键命令

  • 查找键,参数⽀持正则表达式

    keys pattern

  • 例 1:查看所有键

    keys *

  • 例 12:查看名称中包含 a 的键

    keys ‘a*’

  • 判断键是否存在,如果存在返回 1,不存在返回 0

    exists key1

  • 例 3:判断键 a1 是否存在

    exists a1

  • 查看键对应的 value 的类型

    type key

  • 例 4:查看键 a1 的值类型,为 redis ⽀持的五种类型中的⼀种

    type a1

  • 设置过期时间,以秒为单位

  • 如果没有指定过期时间则⼀直存在,直到使⽤ DEL 移除

    expire key seconds

  • 例 5:设置键 ’a1’ 的过期时间为 3 秒

    expire a1 3

  • 查看有效时间,以秒为单位

    ttl key

  • 例 6:查看键 ’bb’ 的有效时间

    ttl bb

hash 类型

  • hash ⽤于存储对象,对象的结构为属性、值
  • 值的类型为 string

增加、修改

  • 设置单个属性

    hset key field value

  • 例 1:设置键 user 的属性 name 为 itheima

    hset user name itheima

  • 设置多个属性

    hmset key field1 value1 field2 value2 …

  • 例 2:设置键 u2 的属性 name 为 itcast、属性 age 为 11

    hmset u2 name itcast age 11

获取

  • 获取指定键所有的属性

    hkeys key

  • 例 3:获取键 u2 的所有属性

    hkeys u2

  • 获取⼀个属性的值

    hget key field

  • 例 4:获取键 u2 属性 ’name’ 的值

    hget u2 name

  • 获取多个属性的值

    hmget key field1 field2 …

  • 例 5:获取键 u2 属性 ’name’、’age 的值

    hmget u2 name age

  • 获取所有属性的值

    hvals key

  • 例 6:获取键 ’u2’ 所有属性的值

    hvals u2

删除

  • 删除整个 hash 键及值,使⽤ del 命令
  • 删除属性,属性对应的值会被⼀起删除

    hdel key field1 field2 …

  • 例 7:删除键 ’u2’ 的属性 ’age’

    hdel u2 age

list 类型

  • 列表的元素类型为 string
  • 按照插⼊顺序排序

增加

  • 在左侧插⼊数据

    lpush key value1 value2 …

  • 例 1:从键为 ’a1’ 的列表左侧加⼊数据 a、b、c

    lpush a1 a b c

  • 在右侧插⼊数据

    rpush key value1 value2 …

  • 例 2:从键为 ’a1’ 的列表右侧加⼊数据 0 1

    rpush a1 0 1

  • 在指定元素的前或后插⼊新元素

    linsert key before 或 after 现有元素 新元素

  • 例 3:在键为 ’a1’ 的列表中元素 ’b’ 前加⼊ ’3′

    linsert a1 before b 3

获取

  • 返回列表⾥指定范围内的元素

    • start、stop 为元素的下标索引
    • 索引从左侧开始,第⼀个元素为 0
    • 索引可以是负数,表示从尾部开始计数,如 - 1 表示最后⼀个元素

    lrange key start stop

  • 例 4:获取键为 ’a1’ 的列表所有元素

    lrange a1 0 -1

设置指定索引位置的元素值

  • 索引从左侧开始,第⼀个元素为 0
  • 索引可以是负数,表示尾部开始计数,如 - 1 表示最后⼀个元素

    lset key index value

  • 例 5:修改键为 ’a1’ 的列表中下标为 1 的元素值为 ’z’

    lset a 1 z

删除

  • 删除指定元素

    • 将列表中前 count 次出现的值为 value 的元素移除
    • count > 0: 从头往尾移除
    • count < 0: 从尾往头移除
    • count = 0: 移除所有

    lrem key count value

  • 例 6.1:向列表 ’a2’ 中加⼊元素 ’a’、’b’、’a’、’b’、’a’、’b’

    lpush a2 a b a b a b

  • 例 6.2:从 ’a2’ 列表右侧开始删除 2 个 ’b’

    lrem a2 -2 b

  • 例 6.3:查看列表 ’py12’ 的所有元素

    lrange a2 0 -1

set 类型

  • ⽆序集合
  • 元素为 string 类型
  • 元素具有唯⼀性,不重复
  • 说明:对于集合没有修改操作

增加

  • 添加元素

    sadd key member1 member2 …

  • 例 1:向键 ’a3’ 的集合中添加元素 ’linuxmi’、’lisi’、’linuxidc’

    sadd a3 linuxmi sili linuxidc

获取

  • 返回所有的元素

    smembers key

  • 例 2:获取键 ’a3’ 的集合中所有元素

    smembers a3

删除

  • 删除指定元素

    srem key

  • 例 3:删除键 ’a3’ 的集合中元素 ’linuxidc’

    srem a3 linuxidc

zset 类型

  • sorted set,有序集合
  • 元素为 string 类型
  • 元素具有唯⼀性,不重复
  • 每个元素都会关联⼀个 double 类型的 score,表示权重,通过权重将元素从⼩到⼤排序
  • 说明:没有修改操作

增加

  • 添加

    zadd key score1 member1 score2 member2 …

  • 例 1:向键 ’a4’ 的集合中添加元素 ’lisi’、’linuxidc’、’muu’、’linuxmi’,权重分别为 4、5、6、3

    zadd a4 4 lisi 5 linuxidc 6 muu 3 linuxmi

获取

  • 返回指定范围内的元素
  • start、stop 为元素的下标索引
  • 索引从左侧开始,第⼀个元素为 0
  • 索引可以是负数,表示从尾部开始计数,如 - 1 表示最后⼀个元素

    zrange key start stop

  • 例 2:获取键 ’a4’ 的集合中所有元素

    zrange a4 0 -1

  • 返回 score 值在 min 和 max 之间的成员

    zrangebyscore key min max

  • 例 3:获取键 ’a4’ 的集合中权重值在 5 和 6 之间的成员

    zrangebyscore a4 5 6

  • 返回成员 member 的 score 值

    zscore key member

  • 例 4:获取键 ’a4’ 的集合中元素 ’linuxmi’ 的权重

    zscore a4 linuxmi

删除

  • 删除指定元素

    zrem key member1 member2 …

  • 例 5:删除集合 ’a4’ 中元素 ’linuxmi’

    zrem a4 linuxmi

  • 删除权重在指定范围的元素

    zremrangebyscore key min max

  • 例 6:删除集合 ’a4’ 中权重在 5、6 之间的元素

    zremrangebyscore a4 5 6

下面关于 Redis 的文章您也可能喜欢,不妨参考下:

CentOS 7 下 Redis 的安装与配置 https://www.linuxidc.com/Linux/2017-02/140363.htm
Redis 单机 & 集群离线安装部署 https://www.linuxidc.com/Linux/2017-03/141403.htm
CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 https://www.linuxidc.com/Linux/2016-09/135071.htm
Redis 实战 中文 PDF https://www.linuxidc.com/Linux/2016-04/129932.htm
Redis 启动之后警告信息解决方案集锦 https://www.linuxidc.com/Linux/2018-02/150957.htm
Redis 高可用及分片集群 https://www.linuxidc.com/Linux/2018-07/153189.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计3540字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中