「这是我参与2022首次更文挑战的第8天,活动详情查看:2022首次更文挑战」
接着昨天的继续探讨:
10. Redis的5种数据结构
A、字符串类型string
字符串类型是Redis中最基本的数据结构,它能存储任何类型的数据,包括二进制数
据,序列化后的数据,JSON化的对象甚至是一张图片。最大512M。
B、列表类型list
Redis列表是简单的字符串列表,按照插入顺序排序,元素可以重复。你可以添加一个元素到列表的头部(左边)或者尾部(右边),底层是个链表结构。
C、 集合类型set
Redis的Set是string类型的无序无重复集合。
D、哈希类型 hash
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
E、 有序集合类型zset(sorted set)
Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。
11. Redis的常用操作命令
1)Redis的Key的操作命令
1.1 keys
语法:keys pattern
作用:查找所有符合模式pattern的key. pattern可以使用通配符。
通配符:
- *:表示0或多个字符,例如:keys * 查询所有的key。
- ?:表示单个字符,例如:wo?d , 匹配 word , wood
- [] :表示选择[]内的一个字符,例如wo[or]d, 匹配word, wood, 不匹配wold、woord
1.2 exists
语法:exists key [key…]
作用:判断key是否存在
返回值:整数,存在key返回1,其他返回0。使用多个key,返回存在的key的数量。
1.3 move
语法:move key db
作用:移动key到指定的数据库,移动的key在原库被删除。
返回值:移动成功返回1,失败返回0.
1.4 ttl
语法:ttl key
作用:查看key的剩余生存时间(ttl: time to live),以秒为单位。
返回值:
- -1 :没有设置key的生存时间, key永不过期。
- -2:key不存在
1.5 expire
语法:expire key seconds
作用:设置key的生存时间,超过时间,key自动删除。单位是秒。
返回值:设置成功返回数字 1,其他情况是 0 。
1.6 type
语法:type key
作用:查看key所存储值的数据类型
返回值:字符串表示的数据类型
- none (key不存在)
- string (字符串)
- list (列表)
- set (集合)
- zset (有序集)
- hash (哈希表)
1.7 rename
语法:rename key newkey
作用:将key改为名newkey。当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。
当 newkey 已经存在时, RENAME 命令将覆盖旧值。
2) 字符串类型(string)
- 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数
据,序列化后的数据,JSON化的对象甚至是一张图片。
- 字符串类型的数据操作总的思想是通过key操作value,key是数据标识,value是我们感
兴趣的业务数据。
2.1 set
语法:set key value
功能:将字符串值 value 设置到 key 中,如果key已存在,后放的值会把前放的值覆盖掉。
返回值:OK表示成功
2.2 get
语法:get key
功能:获取 key 中设置的字符串值
返回值:key存在,返回key对应的value;
key不存在,返回nil
2.3 append
语法:append key value
功能:
- 如果 key 存在,则将 value 追加到 key 原来旧值的末尾
- 如果 key 不存在,则将key 设置值为 value
返回值:追加字符串之后的总长度(字符个数)
2.4 strlen
语法:strlen key
功能:返回 key 所储存的字符串值的长度
返回值:如果key存在,返回字符串值的长度;
key不存在,返回0
2.5 incr
语法:incr key
功能:将 key 中储存的数字值加1,如果 key 不存在,则 key 的值先被初始化为 0 再执行incr操作。
返回值:返回加1后的key值
2.6 decr
语法:decr key
功能:将 key 中储存的数字值减1,如果 key 不存在,则么 key 的值先被初始化为 0 再执行 decr 操作。
返回值:返回减1后的key值
2.7 incrby
语法:incrby key offset
功能:将 key 所储存的值加上增量值,如果 key 不存在,则 key 的值先被初始化为 0 再执行 INCRBY 命令。
返回值:返回增量之后的key值。
2.8 decrby
语法:decrby key offset
功能:将 key 所储存的值减去减量值,如果 key 不存在,则 key 的值先被初始化为 0 再执行 DECRBY 命令。
返回值:返回减量之后的key值。
2.9 getrange
语法:getrange key startIndex endIndex
功能:获取 key 中字符串值从 startIndex 开始到 endIndex 结束的子字符串,包括startIndex和endIndex, 负数表示从字符串的末尾开始,-1 表示最后一个字符。
2.10 setrange
语法:setrange key offsetIndex value
功能:用value覆盖key的存储的值从offset开始。
返回值:修改后的字符串的长度。
2.11 setex
语法:setex key seconds value
功能:设置key的值,并将 key 的生存时间设为 seconds (以秒为单位) ,如果key已经存在,将覆盖旧值。
返回值:设置成功,返回OK。
2.12 setnx
语法:setnx key value
功能:setnx 是 set if not exists 的简写,如果key不存在,则 set 值,存在则不设置值。
返回值:
- 设置成功,返回1
- 设置失败,返回0
2.13 mset
语法:mset key value [key value…]
功能:同时设置一个或多个 key-value 对
返回值:设置成功,返回OK。
2.14 mget
语法:mget key [key …]
功能:获取所有(一个或多个)给定 key 的值
返回值:包含所有key的列表,如果key不存在,则返回nil。
2.15 msetnx
语法:msetnx key value[key value…]
功能:同时设置一个或多个 key-value 对,如果有一个key是存在的,则设置不成功。
返回值:
- 设置成功,返回1
- 设置失败,返回0
OK,今天先把这些消化了,明天接着唠......