Redis数据结构及操作string数据

版权声明:原创不易,未经作者允许请勿随意转载!因个人能力和精力有限,难免有疏漏和不足之处,欢迎指正,谢谢~ https://blog.csdn.net/lijing742180/article/details/87342677


相关文章:
Redis介绍和安装配置

一、Redis 数据结构

redis 的数据结构是 key-value 类型的 ,每条数据都是一个键值对。

键的类型是字符串,且键不能重复。

值的类型分为五种:

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

在这里插入图片描述

二、操作 String 类型的值

Redis 中对数据的操作主要包括:保存、修改、获取、删除。

  • String 类型是 Redis 中最基础、最常用的数据存储类型;

  • 它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如 JPEG 图像数据或 Json 对象描述信息等。

  • 在 Redis 中字符串类型的 Value 最多可以容纳的数据长度是 512M。

1、 保存和修改

  • 设置键和值
【set key value】

例1:设置键为 name 、值为 yuance 的数据
set name yuance

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

  • 设置键值及过期时间,以秒为单位
【setex key seconds value】

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

当过期时间到了之后,数据就不存在了,变成 nil。

  • 设置多个键值
【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

127.0.0.1:6379> get a1
"python"
127.0.0.1:6379> append a1 haha
(integer) 10
127.0.0.1:6379> get a1
"pythonhaha"

2、获取

  • 根据一个键获取值,如果不存在此键则返回 nil。
【get key】

例5:获取键'name'的值
get name
或
get 'name'
  • 根据多个键获取多个值,如果不存在此键则返回 nil。
【mget key1 key2 ...】

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

127.0.0.1:6379> mget a1 a2 a3 a4
1) "pythonhaha"
2) "java"
3) "c"
4) (nil)

3、删除

  • 删除键,则同时会将值删除。
  • 可同时删除多个键。
del key1 key2 ...

例5:删除键a2、a3
del a2 a3

127.0.0.1:6379> mget a1 a2 a3
1) "pythonhaha"
2) "java"
3) "c"
127.0.0.1:6379> del a2 a3
(integer) 2
127.0.0.1:6379> mget a1 a2 a3
1) "pythonhaha"
2) (nil)
3) (nil)

4、其它常用键命令

  • 查找键,参数支持正则表达式,返回符合条件的键名。
【keys pattern】

例1:查看所有键
keys *

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

127.0.0.1:6379> keys a*
1) "a1"
127.0.0.1:6379> keys b*
(empty list or set)
  • 判断键是否存在,如果存在返回 1,不存在返回 0。
【exists key】

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

127.0.0.1:6379> exists a1
(integer) 1
127.0.0.1:6379> exists a2
(integer) 0
  • 查看键对应的 value 值的类型,返回 redis 支持的五种类型中的一种。
    • 若键不存在,则返回 none。
【type key】

例4:查看键 a1 的值类型
type a1

127.0.0.1:6379> type a1
string
127.0.0.1:6379> type a2
none
  • 设置过期时间,以秒为单位。
    • 可以通过 setex 命令在保存键值的同时设置过期时间,也可以使用 expire 命令单独设置过期时间。
    • 如果没有指定过期时间则一直存在,直到使用 DEL 命令删除。
【expire key seconds】

例6:设置键'a1'的过期时间为3秒
expire 'a1' 3
  • 查看指定键的当前有效时间,以秒为单位。
【ttl key】

例7:查看键 'a1' 的有效时间还有多少
ttl a1

"未设置有效时间,则返回 -1:"
127.0.0.1:6379> ttl a1
(integer) -1
"设置键 a1 的有效期为 10s:"
127.0.0.1:6379> expire a1 10
(integer) 1
"查看键 a1 的剩余有效期:"
127.0.0.1:6379> ttl a1
(integer) 6
127.0.0.1:6379> ttl a1
(integer) 3
"超过有效期,则返回 -2:"
127.0.0.1:6379> ttl a1
(integer) -2
"超过有效期,键就不存在了:"
127.0.0.1:6379> get a1
(nil)

猜你喜欢

转载自blog.csdn.net/lijing742180/article/details/87342677