redis常用数据结构及命令

Redis数据结构简介

Redis可以存储键与5种不同数据结构类型之间的映射,这五种数据结构分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)、和Zset(有序集合)。

结构类型 结构存储的值 结构的读写能力
String 字符串、整数或者浮点数 对整个字符串或者字符串的一部分执行操作;对整数和浮点数执行自增或者自减操作
List 一个链表,链表上的每个节点都包含一个字符串 从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪(trim);读取单个或者多个元素;根据值查找或者移除元素
Set 包含字符串的无序收集器 ,并且被包含的每个字符串都是独一无二、各不相同的 添加、获取、移除单个元素;检查一个元素是否存在于集合中;计算交集、并集、差集;从集合里面随机获取元素
Hash 包含键值对的无序散列表 添加、获取、移除单个键值对;获取所有键值对
ZSet 字符串成员与浮点数分值之间的有序映射,元素的排列顺序由分值的大小决定 添加、获取、移除单个元素;根据分值范围或者成员来获取元素

Redis中的字符串

字符串示例
字符串可以存储以下3种类型的值

  • 字符串
  • 整数
  • 浮点数

基本操作:

命令 用例 描述
GET get key-name 获取字符串的值
Set set key-name 设置字符串的值
Del del key-name 删除字符串的值

整数和浮点数类型操作:

命令 用例 描述
INCR incr key-name 将键存储的值加1
DECR decr key-name 将键存储的值减去1
INCRBY incrby key-name amount 将键存储的值加上整数amount
DECRBY decrby key-name amount 将键存储的值减去整数amount
INCRBYFLOAT incrbyfloat key-name amount 将键存储的值减去浮点数amount

当用户将一个值存储到Redis字符串里面的时候,如果这个值可以被解释为十进制整数或者浮点数,那么Redis就允许用户对这个字符串执行各种incr *和decr *操作。如果用户对一个不存在的键或者一个保存了空串的键执行自增或者自减操作,那么redis在执行操作时会将这个键的值当作0来处理。
如果用户尝试对一个值无法被解释为整数或者浮点数的字符串键执行自增或者自减操作,那么Redis会向用户返回一个错误。

字符串操作:

命令 用例 描述
APPEND append key-name value 将值value追加到给定键当前存储的值的末尾
GETRANGE getrange key-name start end 获取一个由偏移量start至偏移量end范围内所有字符组成的子串,包括start 和end
SETRANGE setrange key-name offset value 从指定的偏移量offset开始,用给定的值覆盖原有值
GETBIT getbit key-name offset 将字节传看作是二进制位串(bit string),返回位串中偏移量为offset的二进制位的值
SETBIT setbit key-name offset value 将字节传看作是二进制位串,并将位串中偏移量为offset的二进制位的值设置为value
BITCOUNT bitcount key-name < start end> 统计二进制位串里值为1的二进制位的数量,如果给定了可选的start和end。那么只对偏移量指定范围内的二进制位进行统计
BITTOP bittop operation dest-key key-name [key-name…] 对一个或者多个二进制位串执行包括 并、或、异或、非在内的任意一种按位运算操作,并将结果值保存到dest-key中

补充:什么是二进制位串?

假设我们有一个键 mykey,其二进制表示为 01001000 01100101 01101100 01101100 01101111(对应字符串 “Hello”)。 那么 字符H的二进制位串表示为0【第0位】1【第1位】0【第2位】0【第3位】1【第4位】0【第5位】0【第6位】0【第7位】,获取偏移量为6的位值为0.即getbit mykey 6 返回结果0。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

just-julie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值