1 数据类型之 string类型:
字符串类型是redis中最基本的数据类型,它能存储任何形式的字符串,包含二进制数据,甚至是一张图片(二进制内容)。一个字符串类型的值存储的最大容量是1GB
命令
set/get
mset/mget
incr/decr/incrby/decrby/incrbyfloat
append
strlen
解释:
set/get 多次对同名的key执行set后 对应的值会被覆盖掉
mset/mget :同一命令行中对多个参数赋值和取值
incr/decr/incrby/decrby/incrbyfloat incr key :给对应的key的值增加1 decr key :给对应的key的值递减1 incrby key 5 : 给对应的key的值增加加5 decrby key 5 : 给对应的key的值增减减5 incrbyfloat key 1.01 : 给对应的key的值增加浮点数1.01 注意没有递减浮点操作 append key " world" 给key对应value后增加串 world strlen key 返回key对应的string类型值的长度
2 数据类型之 hash方式:
hash类型的值存储了字段和字段值的映射,字段值只能是字符串,不支持其他数据类型。
hash类型的键至多可以包含 2的32次方-1个字段。
hash类型适合存储对象:如图:
使用hash数据类型,redis可以为任何键增减字段而不影响其他键
命令
hset/hget/hmset/hmget/hgetall(hsetnx)
hexists,判断键中的属性是否存在
hincrby(hash类型没有hincr命令)
hdel
hkeys/hvals
hlen
命令
hset/hget/hmset/hmget/hgetall(hsetnx)
hexists,判断键中的属性是否存在
hincrby(hash类型没有hincr命令)
hdel
hkeys/hvals
hlen
// 增加hash类型三个属性 127.0.0.1:6379> hset user:100 name zm (integer) 1 127.0.0.1:6379> hset user:100 age 30 (integer) 1 127.0.0.1:6379> hset user:100 sex 1 (integer) 1 // 获取一个属性的值 127.0.0.1:6379> hget user:100 sex "1" // 同时获取多个属性的值 127.0.0.1:6379> hmget user:100 sex age 1) "1" 2) "30" // 得到这个健下对应的所有属性和属性值 127.0.0.1:6379> hgetall user:100 1) "name" 2) "zm" 3) "age" 4) "30" 5) "sex" 6) "1" // 判断属性是否存在 127.0.0.1:6379> hexists user:100 name (integer) 1 // 得到所有属性 127.0.0.1:6379> hkeys user:100 1) "name" 2) "age" 3) "sex" 得到所有属性对应的数值 127.0.0.1:6379> hvals user:100 1) "zm" 2) "30" 3) "1" // 删除属性age 127.0.0.1:6379> hdel user:100 age (integer) 1 // 得到健下所有属性个数 127.0.0.1:6379> hlen user:100 (integer) 2
3 数据类型之list:
list是一个有序的字符串列表,列表内部实现是使用双向列表(linked list)实现的。 list还可以作为队列使用(后面讲) 一个列表类型的键最多能容纳 2的32次方-1 个元素。 命令 lpush/rpush/lpop/rpop llen/lrange lrem(lrem key count value)count分为三种情况 lindex/lset/ltrim/linsert rpoplpush:将元素从一个列表转到另一个列表 lpush 向列表左侧插入数据 rpush 向列表右侧插入数据 lpush list 1 lpush list 2 rpush list 3 rpush list 4 lrange list 0 -1 查看list这个key内的所有数据 lpop 从左侧弹出并移除 rpop 从右侧弹出并移除 llen list 查询元素个数 lpush list 3 4 5 6 7 插入多条 中间用空格隔开 lrem list 2 3 从key为list的集合中 从左侧开始删除,删除2次值为3的数据 lrem list -2 3 从key为list的集合中 从右侧开始删除,删除2次值为3的数据 lrem list 0 3 从key为list的集合中 删除所有值为3的数据 lindex list 0 查询角标为0的数据 lset list 0 x 将集合list的第0个元素设置为x ltrim list 0 2 将key名称为list的集合切割得到角标为0,1,2的三个元素 linsert list before d a 在元素d前面插入元素a linsert list after d y 在元素d后面插入元素y
4 数据类型之set:
set集合中的数据都是不重复的,无序的,一个集合类型键可以存储至多 2的32次方-1 个字符串 命令 sadd/srem/smembers/sismember sdiff/sinter/sunion sdiffstore/sinterstore/sunionstore scard/srandmember/spop sadd set1 a smembers set1 返回集合set1的所有元素 srem set1 a 删除集合set1的a元素 sismember set1 a 查看set1中是否有元素a sadd set1 a b c sadd set2 b c d sdiff set1 set2 求集合之间的差集 以第一个参数集合作为判断标准 sinter set1 set2 求集合之间的交集 sunion set1 set2 求集合之间的并集 sdiffstore setresult set1 set2 将集合set1 set2的差集结果存储在集合setresult中 sinterstore setresult1 set1 set2 将集合set1 set2的交集结果存储在集合setresult1中 sunionstore setresult2 set1 set2 将集合set1 set2的并集结果存储在集合setresult2中 scard set1 返回集合个数 srandmember set1 2 每次随机从集合set1中获取2个元素 spop set1 随机从set1中取出一个元素并移除
5 数据类型之sorted set:
有序集合,在集合类型的基础上为集合中的每个元素都关联了一个分数,这样可以很方便的获得分数最高的N个元素(topN)。 有序集合类型和列表类型的差异 相同点 (1)二者都是有序的 (2)二者都可以获得某一范围的元素 不同点 (1)列表类型是通过链表实现的,获取靠近两端的数据速度极快,当列表中元素增多后,访问中间的数据速度会很慢,所以它更加适合很少访问中间元素的应用 (2)有序集合类型是使用散列表和跳跃表(skip list)实现的,所以即使读取位于中间部分的数据速度也很快 (3)列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改这个元素的分值) (4)有序集合要比列表类型更耗费内存 给每个元素设置分值,然后根据set元素的分值来排序,从而达到有序的目的。
相关推荐
String类型使用场景 计数器 例如一篇文章有多少人看过使用 INCR article:readcount:文章id 取值为GET article:readcount:文章id hash类型使用场景 电商的购物车 hset cart:用户id 商品id 商品数量 增加同样商品的...
本文将深入探讨如何使用Java来操作Redis,包括设置和获取String、List和Map类型的数据,并且会介绍如何进行封装和单元测试。 首先,要与Redis进行交互,我们需要引入Jedis库,这是Java最常用的Redis客户端。在你的...
然而,Redis并不仅限于String和Hash,它还支持List、Set和Sorted Set等其他数据类型,每种都有其独特的应用场景。例如,List可以用于实现消息队列,通过LPUSH和RPOP命令添加和取出元素;Set适合存储不重复的元素,如...
Redis学习手册 Set数据类型 doc Redis学习手册 Sorted Sets数据类型 doc Redis学习手册 String数据类型 doc Redis学习手册 主从复制 doc Redis学习手册 事务 doc Redis学习资料 rar redis讲义 doc">redis 2 8 13 tar...
本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...
内容包含了redis中全部命令string,list,set,zset,hashhyperloglog,geo,stream,pubsub,scripting,server,cluster,connection,generic,transactions. 格式有命令完整语法格式,命令说明,起始版本三部分组成,例如 MGET ...
通过以上对Redis数据类型及其相关指令的整理,我们可以了解到Redis提供了非常丰富和灵活的数据操作能力,这使得Redis成为了一个在多种应用场景下都非常实用的工具。无论是在数据存储、缓存加速还是消息队列等场景,...
本文主要探讨Redis中的数据类型,包括String、List、Set和Sorted Set,并结合实际应用讲解它们的特点和使用方法。 1. String String是最基本的数据类型,可以存储任何类型的数据,如数字、字符串等。在Redis中,...
3. **Redis命令操作**:书中会详细介绍每种数据类型的命令,如`SET`、`GET`、`HSET`、`LPOP`、`SADD`、`ZADD`等,以及事务(Transaction)、管道(Pipeline)等高级操作。 4. **Redis持久化**:为了防止数据丢失,...
Redis 是一个高性能的键值存储系统,它支持多种数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Sorted Set)。这些数据类型的特性使得Redis成为处理各种数据结构的理想选择...
Redis 是一个开源的、基于内存的数据结构存储系统,支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(集合)及 zset(有序集合)。本文将详细介绍 Redis 的 List 类型的命令和应用场景。 ...
- **丰富的数据结构**:除了基本的键值对存储外,Redis还支持多种复杂的数据结构,如List、Set、Sorted Set等,使得开发者能够更加灵活地组织和操作数据。 - **更高的内存使用效率**:当采用特定的数据结构时,Redis...
它主要支持五种数据类型:String、Hash、List、Set、Sorted Set,每种数据类型有其独特的使用场景和适用性。 ### String(字符串类型) String是Redis中最基本的数据类型,可以包含任何数据,比如JPEG图片或者序列...
* 简介:String是Redis最基本的类型,可以理解成与Memcached一样的类型,一个key对应一个value。String类型是二进制安全的,意思是Redis的String可以包含任何数据。 * 应用场景:存储简单的键值对,比如统计某个网站...
首先,Redis数据类型可以分为五种常用类型:string、hash、list、set、sorted_set。Redis自身是一个基于内存的存储系统,其中所有的数据都是采用key:value的形式存储的。key总是字符串类型,而value则根据数据类型的...
本文将深入探讨Redis中的五大数据类型及其应用场景。 1. 字符串(String) 字符串是最基本的数据类型,用于存储单个值。它可以是数字、字母或任何Unicode字符。在Redis中,字符串可以作为键值对中的值,常用来存储...
其五大数据类型是Redis的核心,它们分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。 1. **字符串(String)**: - String是最基础的数据类型,每个key对应一个value,value可以是...
Redis 是一个高性能的键值数据库,它支持五种主要的数据类型:String、Hash、List、Set 和 Sorted Set,每种类型都有其特定的使用场景。 1. String:这是最基本的键值对数据类型,其中值可以是字符串或数字。String...
3)支持多种数据类型,常见的如 string、list、hash、set、zset、bitmaps、hyperloglog、geo 4)应用场景广泛:常作为缓存使用,分布式锁、数据共享等 Redis 支持的数据类型有哪些?1)String(字符类型) 2)Hash...