Redis 数据类型之string/list/hash

简介: 本文目录1. Redis中的键2. Redis中的值3. 字符串类型string4. 列表类型list5. 哈希类型hash

1. Redis中的键

Redis是键值型数据库,Redis中的键只有一个类型,就是字符串。


2. Redis中的值

Redis值支持的类型有以下几种:


字符串类型 string

列表类型 list

集合类型 set

有序集合类型 sorted set

哈希类型 hash

HyperLogLog类型

Geo类型

3. 字符串类型string

1、字符串类型的存取操作,注意set执行成功会返回OK。


127.0.0.1:6379> set name "maoge"

OK

127.0.0.1:6379> get name

"maoge"


2、如果键不存在,则返回nil。


127.0.0.1:6379> get test

(nil)


3、使用strlen可以获取字符串长度,当键不存在时返回0。


127.0.0.1:6379> strlen name

(integer) 5

127.0.0.1:6379> strlen test

(integer) 0


4、如果键已存在,再次执行set,则覆盖键对应的值。


127.0.0.1:6379> set name "maoge"

OK

127.0.0.1:6379> set name "halo"

OK

127.0.0.1:6379> get name

"halo"


5、使用setnx,当键不存在时为其设值,此时返回1;当键已存在则不改变键对应的值,返回0。


127.0.0.1:6379> setnx country "china"

(integer) 1

127.0.0.1:6379> get country

"china"

127.0.0.1:6379> setnx country "usa"

(integer) 0

127.0.0.1:6379> get country

"china"


6、使用mset/mget可以进行批量操作,这样可以节省客户端和服务器之间的通信开销。


127.0.0.1:6379> mset age "12" sex "man"

OK

127.0.0.1:6379> mget age sex

1) "12"

2) "man"


4. 列表类型list

常用操作如下:


lrange 显示指定索引范围的元素(从0开始算)

lpush 左侧插入元素,返回插入后列表长度

rpush 右侧插入元素,返回插入后列表长度

lpop 左侧弹出元素

rpop 右侧弹出元素

注意,向不存在的键插入元素,Redis会自动创建list;如果列表为空,Redis会自动回收该键。实例如下:


127.0.0.1:6379> lrange studetns 0 1

(empty list or set)

127.0.0.1:6379> lpush students "zhangsan"

(integer) 1

127.0.0.1:6379> rpush students "lisi"

(integer) 2

127.0.0.1:6379> lrange students 0 1

1) "zhangsan"

2) "lisi"

127.0.0.1:6379> lpop students

"zhangsan"

127.0.0.1:6379> rpop students

"lisi"

127.0.0.1:6379> lrange students 0 1

(empty list or set)


5. 哈希类型hash

注意Redis数据集本身即是一个hash结构,类似于java中的map。


此处的哈希类型,指的是,Redis键对应的值的部分,依然是一个哈希类型。


1、hset设置单个哈希字段的值


127.0.0.1:6379> hset city beijing "001"

(integer) 1

127.0.0.1:6379> hset city shanghai "002"

(integer) 1


2、hget获取单个哈希字段对应的值


127.0.0.1:6379> hget city beijing

"001"


3、hexists测试哈希字段是否存在


127.0.0.1:6379> hexists city beijing

(integer) 1

127.0.0.1:6379> hexists city tianjin

(integer) 0


4、hgetall获取哈希所有字段值


127.0.0.1:6379> hgetall city

1) "beijing"

2) "001"

3) "shanghai"

4) "002"


5、删除哈希字段


127.0.0.1:6379> hdel city beijing

(integer) 1

127.0.0.1:6379> hget city beijing

(nil)


6、批量设置、获取哈希字段


127.0.0.1:6379> hmset city nanjing "003" shenzhen "004"

OK

127.0.0.1:6379> hmget city nanjing shenzhen

1) "003"

2) "004"

相关文章
|
5月前
|
存储 消息中间件 NoSQL
【Redis】常用数据结构之List篇:从常用命令到典型使用场景
本文将系统探讨 Redis List 的核心特性、完整命令体系、底层存储实现以及典型实践场景,为读者构建从理论到应用的完整认知框架,助力开发者在实际业务中高效运用这一数据结构解决问题。
|
11月前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、"+"操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
341 9
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
901 7
|
存储 Java 对象存储
String 属于基础的数据类型吗
String 在多数编程语言中被视为一种基础数据类型,但实际上它是由字符组成的序列。在一些语言中,如 Java 和 Python,String 被设计为不可变的对象,以简化编程和提高安全性。
369 6
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
NoSQL 关系型数据库 MySQL
Redis 列表(List)
10月更文挑战第16天
203 2
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
1615 1
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
517 1
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
313 3