iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis——set,hash与列表
  • 885
分享到

Redis——set,hash与列表

Redis——sethash与列表 2020-01-02 04:01:13 885人浏览 绘本
摘要

一.List列表 基于Linked List实现 元素是字符串类型 列表头尾增删快,中间增删慢,增删元素是常态 元素可以重复出现 最多包含2^32-1元素   列表的索引 从左至右,从0开始 从右至左,从-1开始   1.左

Redis——set,hash与列表

一.List列表

基于Linked List实现 元素是字符串类型

列表头尾增删快,中间增删慢,增删元素是常态

元素可以重复出现

最多包含2^32-1元素

 

列表的索引

从左至右,从0开始

从右至左,从-1开始

 

1.左右或者头尾压入元素

LPUSH key value [value ...]

LPUSHX key value

RPUSH key value [value ...]

RPUSHX key value

 

2.左右或者头尾弹出元素

LPOP key RPOP key

 

 

 

 

3.从一个列表尾部弹出元素压入到另一个列表的头部

RPOPLPUSH source destination

4.返回列表中指定范围元素

LRANGE key start stop LRANGE key 0 -1表示返回所有元素

5.获取指定位置的元素

LINDEX key index

6.设置指定位置元素的值

LSET key index value

7.列表长度,元素个数

LLEN key

 

 

 

 

8.从列表头部开始删除值等于value的元素count次

LREM key count value

count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count

count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值

count = 0 : 移除表中所有与 value 相等的值

 

 

 

9.去处指定范围外元素

LTRIM key start stop

 

 

 10.在列表中某个存在的值(pivot)前或后插入元素

LINSERT key BEFORE|AFTER pivot value

key和pivot不存在,不进行任何操作

 

 

11.阻塞
    如果弹出的列表不存在或者为空,就会阻塞
    超时时间设置为0,就是永久阻塞,直到有数据可以弹出
    如果多个客户端阻塞在同一个列表上,使用First In First Service原则,先到先服务

    左右或者头尾阻塞弹出元素

    BLPOP key [key ...] timeout

    BRPOP key [key ...] timeout

 

二. Hsh散列

1.特点

  由field和关联的value组成的map键值对

  field和value是字符串类型一个hash中

  最多包含2^32-1键值对

 

 

2.设置单个字段

HSET key field value

HSETNX key field value

key的filed不存在的情况下执行,key不存在直接创建

3.设置多个字段

HMSET key field value [field value ...]

4.返回字段个数

HLEN key

5.判断字段是否存在

HEXISTS key field

key或者field不存在,返回0

 

 

 

 

6.返回字段值

HGET key field

7.返回多个字段值

HMGET key field [field ...]

8.返回所有的键值对

HGETALL key

9.返回所有字段名

HKEYS key

10.返回所有值

HVALS key

 

 

 

11.在字段对应的值上进行整数的增量计算

HINCRBY key field increment

12.在字段对应的值上进行浮点数的增量计算

HINCRBYFLOAT key field increment

13.删除指定的字段

HDEL key field [field ...]

 

 

 

 

14. hash的用途

1)节约内存空间

2)每创建一个键,它都会为这个键储存一些附加的管理信息(比如这个键的类型,这个键最后一次被访问的时间等等)

3)所以数据库里面的键越多,Redis数据库服务器在储存附加管理信息方面耗费的内存就越多,花在管理数据库键上的CPU也会越多在字段对应的值上进行浮点数的增量计算

 

15.不适合hash的情况

1)使用二进制位操作命令:因为Redis目前支持对字符串键进行SETBIT、GETBIT、BITOP等操作,如果你想使用这些操作,那么只能使用字符串键,虽然散列也能保存二进制数据

2)使用过期键功能:Redis的键过期功能目前只能对键进行过期操作,而不能对散列的字段进行过期操作,因此如果你要对键值对数据使用过期功能的话,那么只能把键值对储存在字符串里面

 

 三.set集合

1.特点

无序的、去重的

元素是字符串类型

最多包含2^32-1元素

 

 

 

2.增加一个或多个元素

SADD key member [member ...]

如果元素已经存在,则自动忽略

3. 移除一个或者多个元素

SREM key member [member ...]

元素不存在,自动忽略

4.返回集合包含的所有元素

SMEMBERS key

如果集合元素过多,例如百万个,需要遍历,可能会造成服务器阻塞,生产环境应避免使用

 

 

 5.集合的无序性 ‘

SADD friends "peter" "jack" "tom" "john" "may" "ben"

SADD anotherfriends "peter" "jack" "tom" "john" "may" "ben"

SMEMBERS friends

SMEMBERS anotherfriends

注意, SMEMBERS 有可能返回不同的结果,所以,如果需要存储有序且不重复的数据使用有序集合,存储有序可重复的使用列表

6. 随机返回集合中指定个数的

SRANDMEMBER key [count]

如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。

如果 count 大于等于集合基数,那么返回整个集合

如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值

如果 count 为 0,返回空 如果 count 不指定,随机返回一个元素

 

 

 

7. 返回集合中元素的个数

SCARD key 键的结果会保存信息,集合长度就记录在里面,所以不需要遍历

8. 随机从集合中移除并返回这个被移除的元素

SPOP key

 

 

 

9. 差集

SDIFF key [key ...],从第一个key的集合中去除其他集合和自己的交集部分

SDIFFSTORE destination key [key ...],将差集结果存储在目标key中

 

 

 

 

 

10.交集

SINTER key [key ...],取所有集合交集部分

SINTERSTORE destination key [key ...],将交集结果存储在目标key中

 

 

 

 

 

 

 

 

11. 并集

SUNION key [key ...],取所有集合并集

SUNIONSTORE destination key [key ...],将并集结果存储在目标key中

 

 

 

四. SortedSet有序集合

1.特点

类似Set集合

有序的、去重的

元素是字符串类型

每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。

分值可以相同 最多包含2^32-1元素

 

2. 增加一个或多个元素

ZADD key score member [score member ...]

如果元素已经存在,则使用新的score

举例

ZADD fruits 3.2 香蕉

ZADD fruits 2.0 西瓜

ZADD fruits 4.0 番石榴 7.0 梨 6.8 芒果

 

 

3. 移除一个或者多个元素

ZREM key member [member ...]

元素不存在,自动忽略

举例

ZREM fruits 番石榴 梨 芒果

ZREM fruits 西瓜

 

4.显示分值

ZSCORE key member

举例

ZSCORE fruits 芒果

ZSCORE fruits 西瓜

 

计算机并不能精确表达每一个浮点数,都是一种近似表达

5.增加或者减少分值

ZINCRBY key increment member increment为负数就是减少

举例 ZINCRBY fruits 1.5 西瓜 ZINCRBY fruits -0.8 香蕉

 

6. 返回元素的排名(索引)

ZRANK key member

举例 ZRANK fruits 西瓜

ZRANK fruits 番石榴

ZRANK fruits 芒果

 

 

 

 

7. 返回元素的逆序排名

ZREVRANK key member

 

 

 

 

8. 返回指定索引区间元素

ZRANGE key start stop [WITHSCORES]

如果score相同,则按照字典序lexicographical order 排列 默认按照score从小到大,如果需要score从大到小排列,使用ZREVRANGE

 

 

9. 返回指定分值区间元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

返回score默认属于[min,max]之间,元素按照score升序排列,score相同字典序

LIMIT中offset代表跳过多少个元素,count是返回几个。类似于Mysql

使用小括号,修改区间为开区间,例如(5、(10、5)

-inf和+inf表示负无穷和正无穷

 

 

 10.返回指定分值区间元素

ZREVRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

返回score默认属于[min,max]之间,元素按照score降序排列,score相同字典降序

LIMIT中offset代表跳过多少个元素,count是返回几个。类似于mysql

使用小括号,修改区间为开区间,例如(5、(10、5)

-inf和+inf表示负无穷和正无穷

 

11.移除指定排名范围的元素

 

 

12.移除指定分值范围的元素

 

 

 13.返回集合中元素个数

 

 14.并集

 

 

您可能感兴趣的文档:

--结束END--

本文标题: Redis——set,hash与列表

本文链接: https://www.lsjlt.com/news/8749.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis中hash表内容如何删除
    小编给大家分享一下redis中hash表内容如何删除,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!hash:Redis hash是一个string类型的field和value的映射表,hash...
    99+
    2024-04-02
  • Redis列表与集合怎么使用
    这篇文章主要讲解了“Redis列表与集合怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis列表与集合怎么使用”吧!列表列表是Redis中另外一种数据类型。下面我们来看看列表中一...
    99+
    2023-06-19
  • 如何在redis中实现hash表的内容
    本篇文章给大家分享的是有关如何在redis中实现hash表的内容,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。hash:Redis hash是...
    99+
    2024-04-02
  • Python 使用set()去除列表重复
    一、去除重复元素方法: 1. 对List重复项,可以使用set()去除重复 a = [5, 2, 5, 1, 4, 3, 4,1,0,2,3,8,9,9,9] print(list(set(a))) #将去掉重复的项后,再重新转成lis...
    99+
    2023-01-31
    列表 Python set
  • Redis中的List列表
    List 文章目录 List常用命令lpush/rpush/lrangelpop/rpoplindex 按照下标取得值llen 获取元素个数lrem keyltrim keyrpoplpushlset key index value...
    99+
    2023-08-18
    redis list java
  • Redis Hash序列化存储的问题及解决方案
    目录SDR序列化方式有多种对Redis的存储设置是我自己写的更改序列化方法更改序列化方式继续使用JdkSerializationRedisSerializer这里说的是Spring Data Redis(一下简称SDR)...
    99+
    2022-11-19
    Redis Hash Hash序列化存储 Redis Hash序列化存储
  • redis列表怎么复制到另外的列表
    在Redis中,可以使用`LRANGE`命令获取源列表的所有元素,然后使用`RPUSH`命令将这些元素依次添加到目标列表中,实现将一...
    99+
    2023-08-24
    redis
  • python列表与列表算法详解
    目录1. 序列类型定义2. 列表的基础知识2.1 列表定义2.2 列表基本操作总结1. 序列类型定义 序列是具有先后关系的一组元素 序列是一维元素向量,元素类型可以不同 ...
    99+
    2024-04-02
  • python列表与列表算法详解(2)
    目录2. 案例【三酷猫冒泡法排序】3. 案例【三酷猫二分法查找】总结1. 案例【三酷猫列表记账】 操作需求: (1)用列表对象记录三酷猫每天钓鱼的种类和数量 (2)统计三酷猫所钓...
    99+
    2024-04-02
  • redis怎么查看所有列表
    你可以使用`LRANGE`命令来查看Redis中的所有列表。该命令的语法如下:```LRANGE key start stop```...
    99+
    2023-09-04
    redis
  • 怎么操作redis列表的值
    要操作Redis列表的值,可以使用以下命令:1. RPUSH key value1 [value2 ...]:将一个或多个值插入到列...
    99+
    2023-09-11
    redis
  • Python-列表与元组
       笔记: 在Python中,最基本的数据结构为序列。序列中每个元素都有编号,其位置或索引,其中第一个元素索引为0,第二个为1,以此类推。 Python内置多种序列,其中包含列表、元组、字符串等,他们都可以称为“容器”(字典也称作容器...
    99+
    2023-01-30
    列表 Python
  • PHP中如何实现Redis的散列和列表?
    随着互联网的不断发展和数据量的不断增大,数据存储变得越来越重要。而Redis作为一款高性能的NoSQL数据库,在互联网企业中越来越受欢迎。PHP是一种常用的Web编程语言,而Redis也是一个常用的数据存储方案,因此在PHP中如何实现Red...
    99+
    2023-05-16
    PHP redis 散列和列表
  • python使用set函数删除列表的重复值
    在python中使用set()函数删除列表重复值的方法set:set()函数的作用是创建一个无序不重复元素集,可进行关系测试,删除重复数据。set()函数语法:class set([iterable])set()函数使用方法:a = [5,...
    99+
    2024-04-02
  • Redis压缩列表的示例分析
    这篇文章主要介绍了Redis压缩列表的示例分析,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。此篇文章是主要介绍Redis在数据存储方面的其中一种...
    99+
    2024-04-02
  • SpringBoot实现redis缓存菜单列表
    因为系统的菜单列表是不轻易改变的,所以不需要在每次请求的时候都去查询数据库,所以,在第一次根据用户id请求到菜单列表的时候,可以把菜单列表的数据缓存在redis里,在第二次请求菜单列...
    99+
    2024-04-02
  • redis列表list常用命令大全
    在自己去操作列表的时候发现很多命令自己都不知道,想法很多,但是脑子内存货很少,就找时间仔细的去总结了一些 超级超级详细: 1.string(字符串操作) 1.set:设置键  $reids->set('mykey',111);2.get:获...
    99+
    2023-09-14
    redis 缓存 php
  • redis数据结构之压缩列表
    目录压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当...
    99+
    2024-04-02
  • python3-列表与字符串
    del如下。pop弹出元素并返回。 print(x) [1, 2, 5, 6, 8, 4, 3, 5] del x[3] print(x) [1, 2, 5, 8, 4, 3, 5] y=x.pop() print(y) 5 x pr...
    99+
    2023-01-31
    字符串 列表
  • 怎么向redis列表中加入元素
    使用Redis的LPUSH或RPUSH命令可以向列表中插入元素。1. 使用LPUSH命令向列表的左侧插入一个或多个元素:```LPU...
    99+
    2023-09-04
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作