首页 > 数据库 >学习笔记——redis中的数据类型(List、Set、Hash)

学习笔记——redis中的数据类型(List、Set、Hash)

时间:2023-01-27 11:44:12浏览次数:41  
标签:Set Hash redis 元素 数据类型 value 列表 集合 hash

2023-01-25

一、redis中的数据类型

1、redis列表(List)

redis列表底层是一个双向链表。

(1)从左边/右边插入一个或多个值

lpush/rpush <key><value1><value2><value3>

例如:

(2)从左边/右边吐出一个值。值在键在,值光键亡

lpop/rpop <key>

例如:

(3)从key1列表右边吐出一个值,插入到key2列表左边

rpoplpush <key1><key2>

(4)按照索引下标获得元素(从左到右)

lrange <key><start><stop>

(5)按照索引下标获得元素(从左到右)

lindex <key><value>

例如:

(6)获得列表长度

llen <key>

例如:

(7)在<value>的后面插入<newvalue>插入值

linsert <key> before <value><newvalue>

例如:

插入后的数据

(8)从左边删除n个value(从左到右)

lrem <key><n><value>

例如:

(9)将列表key下标为index的值替换成value

lset<key><index><value>

例如:

 2、redis列表(List)

redis中的set是可以自动排重的,而且是无序集合。它的底层是一个value为null的hash表,所以增加,删除,查找的复杂度都是O(1)。

(1)将一个或多个member元素加入到集合key中,已经存在的member元素将被忽略

sadd <key><value1><value2>

(2)取出该集合的所有值

smembers <key>

 注意:set集合中“去重,无序”

(3)判断集合<key>是否为含有该<value>值,有1,没有0

sismember <key><value>

(4)返回该集合的元素个数

scard <key>

(5)删除集合中的某个元素

srem <key><value1><value2>

 说明:删除两个元素之后,再次显示值,只剩下3个

(6)随机从该集合中吐出一个值

spop <key>

(7)随机从该集合中取出n个值

srandmember <key><n>

 说明:从k4中随机取出2个值

(8)把集合中一个值从一个集合移动到另一个集合

smove <source><destination>

 

 说明:将v1从k4集合中移到k5

(9)返回两个集合的交集元素

sinter <key1><key2>

(10)返回两个集合的并集元素

sunion <key1><key2>

(11)返回两个集合的差集元素(key1中的,不包含key2中的)

sdiff <key1><key2>

 2023-01-27

3、Hash

redis中的hash是一个键值对集合。hash适合用于存储对象。

(1)给<key>集合中的<field>键赋值<value>

hset <key><field><value>

(2)从<key1>集合<fiels>取出value

hget <key1><field>

(3)批量设置hash的值

hmset <key1><field1><value1><field2><value2>

(4)查看哈希表key中,给定域field是否存在

hexists <key1><field>

 

 

 

 说明:返回值是1,表示属性存在;返回值是0,表示属性不存在。

(5)列出该hash集合的所有field

hkeys <key>

(6)列出该hash集合的所有value

hvals <key>

(7)将哈希表key中的域field的值设置为value,当且仅当域field不存在

hset <key><field><value>

 

标签:Set,Hash,redis,元素,数据类型,value,列表,集合,hash
From: https://www.cnblogs.com/isDaHua/p/17066903.html

相关文章

  • 6、dataset实战
    1、首先从包中导入dataset类(fromtorch.utils.dataimportDataset)2、定义一个子类去继承dataset类,可以重写里面的方法(1)__init__(self):初始化方法(必写,因为创建一个......
  • MySql数据类型
    一、数值1、TINYINT1byte小整数值2、SMALLINT2bytes大整数值3、MEDIUMINT3bytes大整数值4、INT或INTEGER4bytes大整数值......
  • 3、Set接口
    1、Set接口基本介绍无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个nullJDKAPI中Set接口的实现类有AbstractSet,ConcurrentHashMap.KeySetView,......
  • VC下这样创建实例m_pRecordset.CreateInstance(_uuidof(Connection))不一定成功!...
    //昨天在打开数据库的记录集时,出现了一个错误,错误提示为无效的指针类型,上网查了一下,原来是我的//的程序在创建实例时,出现了错误,呵呵,以前我都是这样创建实例的:m_pRecordset.......
  • 注意:Java的ResultSet对象,默认是不可更新的!...
     注意啊!Java的ResultSet对象,默认是不可更新的,仅有一个向前移动的指针,因此,只能遍历它一次,并且只能按从第一行到最后一行的顺序进行。如果需要ResultSet指针具有移动和可......
  • js中判断数据类型的方法有哪些
    判断数据类型可以使用typeof但是typeof判断数组和函数时返回的都是Object不能具体判断,这时使用instanceof可以判断对象是否是另一个函数创造的;用法:typeof([]) ......
  • Vue3 setup 如何添加name
    Vue3中name有什么用呢?1.在递归组件的时候需要定义name2.配合keep-aliveincludeexclude可以缓存组件3.在Vue有报错或者调试的时候可以看到组件的nameVue3定义name1.自动......
  • Vue $set 源码解析(保证你也能看懂)
    首先我们看文档有这个例子下面是vue$set部分源码if(process.env.NODE_ENV!=='production'&&(isUndef(target)||isPrimitive(target))){warn('Cannotset......
  • 说一说JS数据类型有哪些,区别是什么?
    Number、String、Boolean、BigInt、Symbol、Null、Undefined、Object、8种标准回答JS数据类型分为两类:一类是基本数据类型,也叫简单数据类型,包含7种类型,分别是Number、St......
  • v8 setup
    记录下笔者本人搭建v8环境的过程,记得挂好代理环境:处于一些原因笔者选择在kali2023上搭建v8gitclonehttps://chromium.googlesource.com/chromium/tools/depot_tools.g......