加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Redis数据结构和常用API

发布时间:2020-12-16 04:47:25 所属栏目:安全 来源:网络整理
导读:Redis是一个速度非常快的非关系型数据库,可以存储键与5中不同数据结构类型之间的映射。这5种数据结构分别是STRING(字符串)、LIST(列表)、SET(集合)、HASH(散列)、ZSET(有序集合)。 STRING(字符串) 和其他编程语言或者其他键值存储提供的字符串
LIST(列表)

列表可以有序存储多个字符串,其中字符串可以相同。

LPUSH?? ?将元素推入列表的左端

RPUSH? ? 将元素推入列表的右端

LPOP? ? 将元素从列表左端弹出

RPOP? ? 将元素从列表右端弹出

LINDEX?? ?获取列表在给定位置上的单个元素

LRANGE?? ? 获取列表在给定范围的所有元素

.:> rpush list- .:> rpop list- .:> rpop list- .:> rpush list- .:> rpush list- .:> rpush list- .:> lrange list-key - ) ) ) .:> lindex list-key .:> lpop list- .:> lrange list-key - ) ) .:>

常用API:

API 说明 复杂度 将一个或多个值推入列表的左端 O(1) rpush key value1 [value2] 将一个或多个值推入列表的右端 O(1) linsert key before|after value newValue 在list指定的值前|后插入newValue O(n) lpop key 移除并返回列表最左端的元素 O(1) rpop key 移除并返回列表最右端的元素 O(1) ltrim key start end 按照索引范围修剪列表 O(n) lindex key offset 返回列表中偏移量为offset的元素 O(n) lrange key start end(包含end) 获取列表指定索引范围所有元素 O(n) llen key 获取列表长度 O(1) lset key index newValue 设置列表指定索引值为newValue O(n) blpop key timeout lpop阻塞版本,timeout为阻塞超时时间,=0为不阻塞 O(1) brpop key timeout rpop阻塞版本,timeout为阻塞超时时间,=0为不阻塞 O(1) SET(集合)

集合可以存储不同多个字符串,且无序。

SADD? ? 将元素添加到集合中

SREM? ? 从集合里面移除元素,如果这个元素存在

SISMEMBER? ? 快速检查一个元素是否已经存在集合中

SMEMBERS? ? 获取集合包含的所有元素(如果集合包含的元素非常多,那么命令执行速度回很慢,谨慎使用)

.:> sadd set- .:> sadd set- .:> sadd set- .:> sadd set- .:> smembers set-) ) ) .:> sismember set- .:> sismember set- .:> srem set- .:> srem set- .:> smembers set-) ) .:>

常用API:

说明 复杂度 sadd key element 向集合key添加element(如果element已经存在,添加失败) O(1) srem key element 将集合key中的element移除 O(1) sismember key element 检查元素element是否存在于集合key中 O(1) smembers 返回集合包含的所有元素 O(N) HASH(散列)

Redis可以存储多个键值对之间的映射,hash 是一个string类型的field和value的映射表,适合存储对象。和字符串一样,散列存储的值既可以存储字符串和数字值,并且可以对散列存储的数字值执行自增或自减操作。

HSET? ? 在散列里面关联起给定的键值对

HGET? ? 获取指定散列键的值

HGETALL?? ?获取散列包含的所有键值对

HDEL? ? 如果给定键存在于散列里面,那么删除这个键

.:> hset hash-key sub- .:> hset hash-key sub- .:> hset hash-key sub- .:> hgetall hash-) ) ) ) .:> hdel hash-key sub- .:> hdel hash-key sub- .:> hget hash-key sub- .:> hgetall hash-) ) .:>

常用API:

API 说明 复杂度 hget key field 获取hash key对应的field的value O(1) hset key field value 设置hash key对应的field的value O(1) hdel key field 删除hash key对应的field的value O(1) hexists key field 判断hash key是否有field O(1) hlen 获取hash key field的数量 O(1) hmget key field1 field2 ... 批量获取hash??key的一批field对应的值 O(n) hmset key field1 value1 field2 value2 ... 批量设置hash key的一批field value O(n) hgetall key 返回hash key 对应所有的field和value O(n) hvals key 返回hash key对应所有field的value O(n) hkeys key 返回hash key对应所有field O(n) hsetnx key field value 设置hash key对应的field的value(如果field已经存在,则失败) O(1) hincrby key field intCounter hash key对应的field的value自增intCounter O(1) hincrbyfloat key field floatCounter hash key对应的field的value自增floatCounter O(1) ZSET(有序集合)

有序集合和散列一样,都用于存储键值对:有序集合的键被称为成员(member),每个成员都是各不相同的;有序集合的值被称为分值(score),分值必须使用浮点数。有序集合是Redis里面唯一一个既可以根据成员访问元素,又可以根据分值以及分值的排列顺序来访问元素的结构。

ZADD? ? 将一个带有给定分值的成员添加到有序集合里面

ZRANGE? ? 根据元素在有序排列中所处的位置,从有序集合中取出多个元素

ZRANGEBYSCORE? ? 获取有序集合在给定分值范围内的所有元素

ZREM? ? 如果给定成员存在于有序集合中,那么移除这个成员

.:> zadd zset-key .:> zadd zset-key .:> zadd zset-key .:> zrange zset-key -) ) ) ) .:> zrangebyscore zset-key ) ) .:> zrem zset- .:> zrem zset- .:> zrange zset-key -) ) .:>

?常用API:

API 说明 复杂度 zadd key score element(可以是多对的) 添加score和element O(lonN) zrem key element(可以是多个) 删除元素 O(1) zscore key element 返回元素的分数 O(1) zincrby key increScore element 增加或减少元素的分数 O(1) zcard key 返回元素的总个数 O(1) zrange key start end [WITHSCORES] 返回指定索引范围内的升序元素【分值】 O(lon(n)+m) zrangebyscore key minScore maxScore[WITHSCORES] 返回指定分数范围内的升序元素【分值】 O(lon(n)+m) zcount key minScore maxScore 返回有序集合内在指定分数范围内的个数 O(lon(n)+m) zremrangebyrank key start end 删除指定排名内的升序元素 O(lon(n)+m) zremrangebyscor key minScore maxScore 删除指定分数内的升序元素 O(lon(n)+m) (编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

Redis是一个速度非常快的非关系型数据库,可以存储键与5中不同数据结构类型之间的映射。这5种数据结构分别是STRING(字符串)、LIST(列表)、SET(集合)、HASH(散列)、ZSET(有序集合)。

STRING(字符串)

和其他编程语言或者其他键值存储提供的字符串非常相似。

SET 设置值

GET 获取值

DEL 删除值

.:>.:> .:> .:>.:>

常用API:

    推荐文章
      热点阅读