ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

02 Redis 数据类型

2022-06-05 12:02:29  阅读:167  来源: 互联网

标签:02 删除 数据类型 元素 Redis a1 获取 a3 key


Redis 数据类型

String 类型

字符串类型是Redis中最为基础的数据存储类型,它再Redis中是二进制安全的,这便意味着该类型可以接收任何格式的数据,如JPEG图像数据或Json对象描述信息等。
在Redis中字符串类型的Value最多可以容纳的数据长度是512M

保存

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

1、设置键值

set key value
  • 例1:设置键为name,值为itcast的数据
set name itcast

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

setex key seconds value

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

3、设置多个键值

mset key1 value1 key2 value2 ...
  • 列3:设置键为a1,值为python、键为a2,值为java、键为a3,值为c
mset a1 python a2 java a3 c

4、追加值

append key value
  • 例4:向键为a1中追加值haha

获取

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

get key
  • 例5:获取键name的值
get 'name'

根据多个键获取多个值

mget key1 key2 key3...
  • 例6:获取键a1、a2、a3
mget a1 a2 a3

删除

查看键命令

键命令

1、查找键,参数支持正则

keys pattern
  • 例1: 查看所有键
keys *

  • 例2:查看名称中包含a的键
keys 'a*'

2、判断键是否存在,存在返回1,不存在返回0

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

3、查看键对应的value的类型

type key
  • 例4: 查看键a1的值类型,为redis支持的五种类型中的一种

4、删除键及对应的值

del key1 key2 ...
  • 例5:删除键a2、a3
del a2 a3

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

  • 如果没有指定过期时间则一直存在,指导使用DEL移除
expire key seconds
  • 例6: 设置键a1的过期时间为30秒
expire 'a1' 30

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

ttl key
  • 例7:查看键'a3'的有效时间
ttl a3

hash类型

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

增加、修改

1、设置单个属性

hset key field value
  • 例1:设置键hash的属性name为01

2、设置多个属性

hmset key field 1 value1 field2 value2 ...
  • 例2:设置u2的属性name为itcast、属性age为11
hmset u2 name itcast age 11

获取

1、获取指定键所有的属性

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

2、获取一个属性的值

hget key field
  • 获取u2的name属性
hget u2 name

3、获取多个属性的值

hmget key field1 field2 ...
  • 例5: 获取键u2属性name、age的值
hmget u2 name ago

4、获取所有属性的值

hvals key
  • 例6: 获取u2所有属性值

删除

1、删除整个hash键及值,使用del命令

del key

2、删除属性, 属性对应的值会被一起删除

hdel key field1 field2 ...
  • 例7:删除键u2的属性age
hdel u2 age

list类型

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

增加

1、在左侧插入数据

lpush key value1 value2 ...
  • 例1:从键为a1的列表左侧加入数据a、b、c
lpush a1 a b c

2、在右侧插入数据

rpush key value1 value2 ...
  • 例2:从键为a1的列表右侧加入数据 0 1
rpush a1 0 1

3、在指定元素的前后插入新数据

insert key before|after 现有数据 新元素
  • 例3:在键为a1的列表中元素b前加入3
insert before b 3

获取

1、返回列表里指定范围内的元素

  • start、stop为元素的下标索引
  • 索引从左侧开始,第一个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后一个数
lrange key start stop
  • 例4: 获取键为a1的列表的所有元素
lrange a1 0 -1

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

  • 索引从左侧开始,第一个元素为0
  • 索引可以是负数,表示尾部开始计数,如-1表示最后一个元素
lset key index value
  • 例5: 修改键为a1的列表中下表为1的元素值为R
lset a1 1 R

删除

1、删除指定元素

  • 将列表中前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列表右侧开始删除两个b
lrem a2 -2 b

set类型

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

增加

1、添加元素

sadd key member1 member2 ...
  • 例1: 向键a3的集合中添加元素zhangsan、lisi、wangwu
sadd a3 zhangsan lisi wangwu

获取

1、返回所有的元素

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

删除

1、删除指定元素

srem key
  • 例3: 删除键a3的集合中元素wangwu
srem a3 wangwu

zset类型

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

增加

1、添加

zadd key score1 member1 score2 member2
  • 向键a4的集合中泰纳及元素lisi、wangwu、zhaoliu、zhangsan 权重分别为4、5、6、3
zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

获取

1、返回指定范围内的元素

  • start、stop为元素的下标索引
  • 索引从左侧开始,第一个元素为0
  • 索引可以是负数, 表示从尾部开始计数,如-1表示最后一个元素
zrange key start stop
  • 例2: 获取a4集合中所有的元素
zrange a4 0 -1

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

zrangebyscore key min max
  • 例3:获取键a4的集合中权限值在5和6之间的成员
zrangeby a4 5 6

3、返回成员member的score值

zscore key member
  • 例4:获取键a4的集合中元素zhangsan的权重
zscore a4 zhangsan

删除

1、删除指定元素

zrange key member1 member2 ..
  • 例5: 删除集合a4中元素zhangsan
zrem a4 zhangsan

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

zremrangebyscore key min max
  • 例6: 删除集合a4中全现5、6之间的元素
zremrangebyscore a4 5 6

标签:02,删除,数据类型,元素,Redis,a1,获取,a3,key
来源: https://www.cnblogs.com/breakdilemma/p/16343670.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有