redis学习02-Hash、List数据类型以及常用操作

本文介绍了Redis中的两种数据类型——Hash和List。Hash适用于存储对象,支持HSET,HGET,HMSET等操作;List模拟双向链表,支持LPUSH,RPUSH,LPOP,RPOP等操作,可用于正反向检索。文章还详细阐述了各种操作的方法和用途。
摘要由CSDN通过智能技术生成

redis学习02-Hash、List数据类型以及常用操作

Hash数据结构

每个Hash对的filed和value都是String类型映射表,适合用于存储对象。hash数据类型最多可以存储2^32-1个键值对

Hash操作

  • HSET key field value 可以给hash一次设定一个Hash对或者一次设定多个对 field为hash对的key value为hash对的value
HSET student name kyoleon age 22
  • HGET key field 一次只能获取一个hash对的值
HGET student name
HGET student value
  • HMSET key field1 value1 field2 value2 可以一次设定多个hash对,目前已经弃用,HSET也可以实现同时给多个hash对赋值
HMSET mStudent name kyoleon age 22 major se
  • HMGET key field1 field2 可以一次同时获取多个hash对的值
HMGET mStudent name age major
  • HKEYS key 获取指定key的所有hash对的key
HKEYS mStudent 
  • HVALS key 获取制定key的所有hash对的value
HVALS mStudent
  • HINCRBY key field increment 给指定key中hash对的value进行自增或自减(increment为负数则是自减)必须是整数型,如果是浮点型,则用HINCRYBYFLOAT
HINCRBY mStudent age -2
  • HSETNX key field value 设定一个hash对的键值对,前提是该键值对不存在
HSETNX mStudent test 123

List数据类型

与java中LinkList类似,可以看作是一个双向链表结构,可以支持正向反向检索。左边是头部,右边是尾部,list中最多可以存储2^32-1个元素

List操作

  • LPUSH key value1 value2 可以一次从左边往List中插入多个数据
LPUSH brand msi asus gigabyte

在这里插入图片描述

链表的头部在左边,尾部在右边。而LPUSH逐个从左边插入msi第一个插入,asus第二个插入,gigabyte第三个插入,所以目前最左侧(头部)是gigabyte,最右侧(尾部)是msi,类似于数据结构中链表的头插法。

  • LPOP key 返回List中左侧第一个元素并将其移除,如果List为空则为nil
LPOP brand

在这里插入图片描述

此时得到的是最左侧的gigabyte,现在List中的元素从左到右分别为:asus msi

  • RPUSH key value1 value2 从右边往List中插入多个数据
RPUSH brand colorful galax

在这里插入图片描述

从右边插入即尾插法,插入的元素在最右侧(尾部)

  • RPOP key 返回List右侧第一个元素并将其移除,如果List为空则为nil
RPOP brand

在这里插入图片描述

  • LRANGE start stop start为开始下标,stop为结束下标 下标从0开始,-1为最后一个下标,-2为倒数第二个下标

获取List中所有的值

LRANGE nvidia 0 -1

在这里插入图片描述

或者

LRANGE nvidia -10 10
  • BLPOP key timeout 阻塞从左边获取List第一个值,如果不存在则阻塞,通过timeout可以设置超时时间单位为秒,未读出为nil
BLPOP s1 s2 s3 100

然后另开一个客户端

LPUSH s1 123

在这里插入图片描述

  • RLPOP key timeout 阻塞从右边获取List第一个值,如果不存在则阻塞,通过timeout可以设置超时时间单位为秒,未读出为nil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值