Redis的五种数据类型(一)

BitAurora
• 阅读 190

Redis的五种数据类型(一)
                                   5种数据类型:字符串、哈希、链表、集合、有序集合。
一、字符串类型(String)
字符串类型是Redis中最为基础的数据存储类型,字符串在Redis中是二进制保存,因此是安全的,这便意味着该类型存入和获取的数据相同。
在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
1、字符串类型的常用命令
Redis的五种数据类型(一)
(1)set key value
设定key持有指定的字符串value,如果该key存在则进行覆盖操作。总是返回”OK”。注意:value值可以可以不用添加双引号。value值在redis中都是以字符串的形式进行存储;
127.0.0.1:6379> set name "zhangsan"
OK
127.0.0.1:6379> set addr shanghai
OK
127.0.0.1:6379> set age 13
OK

(2)get key
获取key的value。如果与该key关联的value不是String类型,redis将返回错误信息,因为get命令只能用于获取String value;如果该key不存在,返回(nil)。
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> get addr
"shanghai"
127.0.0.1:6379> get age
"13"
127.0.0.1:6379> get company
(nil)

(3)del key
根据指定的key删除对应的数据。
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> del name
(integer) 0

(4)设置多个值:mset key1 value1 [key2 value2 ...]
127.0.0.1:6379> mset name zhangsan age 13
OK

(5)获取多个值:mget key1 [key2...]
127.0.0.1:6379> mget name age
1) "zhangsan"
2) "13"
(6)设置值(返回原值):getset key value

127.0.0.1:6379> getset name lisi
"zhangsan"
127.0.0.1:6379>

二、Hash类型
Redis中的Hash类型可以看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。
如username、password和age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存4294967295个键值对。
1、Hash类型的常用命令
Redis的五种数据类型(一)
(1)hset key field value   为指定的key设定field/value对(键值对)。
127.0.0.1:6379> hset stu name zhangsan
(integer) 1
127.0.0.1:6379>

(2)hget key field      返回指定的key中的field的值
127.0.0.1:6379> hget stu name
"zhangsan"
127.0.0.1:6379>

(3) hmset key  field value[field2 value2 ...]    批量给指定key设置多个key-value值
127.0.0.1:6379> hmset stu name zhangsan age 13
OK
127.0.0.1:6379>

(4)hmget key  field[field2  ...]  批量获取指定key的多个key-value值
127.0.0.1:6379> hmget stu name age
1) "zhangsan"
2) "13"
127.0.0.1:6379>

(5)hgetall key   批量获取指定key的所有key-value值
127.0.0.1:6379> hgetall stu
1) "name"
2) "zhangsan"
3) "age"
4) "13"
127.0.0.1:6379>
(6)hdel key field [field2 … ]   可以删除一个或多个字段,返回值是被删除的字段个数

127.0.0.1:6379> hdel stu name age
(integer) 2
127.0.0.1:6379>

三、链表类型list
List就是链表,相信略有数据结构知识的人都应该能理解其结构。使用List结构,我们可以轻松地实现最新消息排行等功能。
List的另一个应用就是消息队列,可以利用List的PUSH操作,将任务存在List中,然后工作线程再用POP操作将任务取出进行执行。
Redis还提供了操作List中某一段的api,你可以直接查询,删除List中某一段的元素。
1、链表类型的常用命令
Redis的五种数据类型(一)
(1)头部插入  lpush key value1 value2 …
在指定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,
之后再向该链表的头部插入数据。如果插入成功,返回元素的个数。
127.0.0.1:6379> lpush stus zhagnsan lisi wangwu
(integer) 3
127.0.0.1:6379>

(2)尾部插入  rpush key value value value
在指定的key对应的list的尾部插入所有的value,如果该key不存在,该命令在插入之前创建一个与该key对应的空链表,
再从尾部插入数据。如果插入成功,返回元素的个数。
127.0.0.1:6379> rpush strs zhangfei guanyu liubei
(integer) 3
127.0.0.1:6379>

(3)查看列表   lrange key 0 -1  和 lrange key start end
查看list中的所有数据;
127.0.0.1:6379> lrange stus 0 -1
1) "wangwu"
2) "lisi"
3) "zhagnsan"
127.0.0.1:6379>

查看list中索引为start到end的数据;
127.0.0.1:6379> lrange stus 0 2
1) "wangwu"
2) "lisi"
3) "zhagnsan"
127.0.0.1:6379>

(4)从list头部取出元素  lpop key
返回并弹出指定的key关联的链表中的第一个元素,即头部元素。如果该key不存在,返回nil;若key存在,则返回链表的头部元素。
127.0.0.1:6379> lpop stus
"wangwu"
127.0.0.1:6379>

(5)从list尾部取出元素  rpop key
127.0.0.1:6379> rpop stus
"zhagnsan"
127.0.0.1:6379>

点赞
收藏
评论区
推荐文章
把帆帆喂饱 把帆帆喂饱
3年前
Redis入门
Redis1、Redis概述Redis介绍Redis是一个开源的keyvalue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset–有序集合)和
Stella981 Stella981
4年前
Spring Boot Redis RedisTemplate 相关API介绍
Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种。SpringBoot集成redis的RedisTemplate,也分别提供的对这些数据类型的操作。主要有5大类:redisTemplate.opsForValue();//操作字符串redis
Stella981 Stella981
4年前
Redis!
概述Redis是一个KeyValue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原
Stella981 Stella981
4年前
Redis安装与配置问题
Redis是一个keyvalue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基
Stella981 Stella981
4年前
Redis常用命令
Redis常用命令Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)等https://gitee.com/nmwork/RedisUtil(https://gitee.com/nmwork/RedisUtil)1.  Redis数
Stella981 Stella981
4年前
Redis(一) String类型操作【存字符串、存数字】
什么是redis?  redis是一个keyvalue存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更
Stella981 Stella981
4年前
Redis的安装配置和使用
  现在我来讲解一下Redis的安装和配置,那么什么是Redis呢?他的作用是什么呢?  redis是一个keyvalue存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/
Stella981 Stella981
4年前
Redis的主从复制
一、redis的五种数据类型:string是字符串类型,是redis最基本的数据类型。哈希类型hash,hash特别适合存储对象列表类型list,按照插入顺序排序集合类型set,不允许有重复数据有序集合类型zset,不允许有重复数据二、redis主从复制为了避免服务器停机导致数据库数据丢失,为了避免单点故障,我们需
Stella981 Stella981
4年前
Redis 入门概述
1\.什么是redisRedis是用C语言开发的一个开源的高性能键值对(keyvalue)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型【String】散列类型【Hash】列表类型【List】集合类型【Set】有序集合类型【
3A网络 3A网络
3年前
Redis 存储对象信息是用 Hash 还是 String
Redis存储对象信息是用Hash还是StringRedis内部使用一个RedisObject对象来表示所有的key和value,RedisObject中的type,则是代表一个value对象具体是何种数据类型,它包含字符串(String)、链表(List)、哈希结构(Hash)、集合(Set)、有序集合(Sortedset)。
小万哥 小万哥
2年前
Redis数据结构:高频面试题及解析
概述Redis是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩