千呼万唤始出来,呵呵(没有犹抱琵琶半遮面)。Redis数据类型第二弹来了!
这次主要是讲解set,sorted set,hash
ps:希望大家习惯我的博客风格。我主要是通过操作Redis的常用命令来讲解这个数据库。截图我觉得能更好的说明效果。但是有些网速可能不给力,所以这次除了截图,我也会吧代码直接贴出来
老套路,我们先启动Redis服务器
命令在复习一次:redis-server redis.conf
开启客户端:redis-cli
输入密码:AUTH ****
还是先简单的复习一下上次说的三种数据结构。
第一种:key(略)太简单了
第二种:String
存取一对键值对:
redis 127.0.0.1:6379> set s_k01 aaaa OK redis 127.0.0.1:6379> get s_k01 "aaaa" redis 127.0.0.1:6379>
第三种:List。list是有序的可以重复的集合
存取一个list
redis 127.0.0.1:6379> select 1 OK redis 127.0.0.1:6379[1]> DBSIZE (integer) 0 redis 127.0.0.1:6379[1]> lpush l_k01 a b c d a b c d (integer) 8 redis 127.0.0.1:6379[1]> rpush l_k01 haha (integer) 9 redis 127.0.0.1:6379[1]> lrange l_k01 0 -1 1) "d" 2) "c" 3) "b" 4) "a" 5) "d" 6) "c" 7) "b" 8) "a" 9) "haha"
好了,前面三种数据结构就到这。多写几次就熟悉了。
下面开始讲解剩下的三种类型。尤其注意set
第一种:set。set是一种无序的,不能重复的集合
redis 127.0.0.1:6379[1]> sadd sk01 a b c a (integer) 3 redis 127.0.0.1:6379[1]> smemhers sk01 (error) ERR unknown command 'smemhers' redis 127.0.0.1:6379[1]> SMEMBERS sk01 1) "c" 2) "a" 3) "b" redis 127.0.0.1:6379[1]> srem sk01 a (integer) 1 redis 127.0.0.1:6379[1]> smembers sk01 1) "c" 2) "b" redis 127.0.0.1:6379[1]> spop sk01 "b" redis 127.0.0.1:6379[1]> SMEMBERS sk01 1) "c" redis 127.0.0.1:6379[1]> SRANDMEMBER sk01 "c" redis 127.0.0.1:6379[1]> SMEMBERS sk01 1) "c" redis 127.0.0.1:6379[1]> sadd sk01 hah hive pig hadoop (integer) 4 redis 127.0.0.1:6379[1]> SMEMBERS sk01 1) "c" 2) "pig" 3) "hah" 4) "hive" 5) "hadoop" redis 127.0.0.1:6379[1]> smove sk01 sk02 hive (integer) 1 redis 127.0.0.1:6379[1]> SMEMBERS sk01 1) "pig" 2) "hah" 3) "c" 4) "hadoop" redis 127.0.0.1:6379[1]> SMEMBERS sk02 1) "hive" redis 127.0.0.1:6379[1]>
redis 127.0.0.1:6379[1]> SMEMBERS sk01 1) "pig" 2) "hah" 3) "c" 4) "hadoop" redis 127.0.0.1:6379[1]> scard sk01 (integer) 4 redis 127.0.0.1:6379[1]> sismember sk01 hadoop (integer) 1 redis 127.0.0.1:6379[1]> sismember sk01 hadoop1 (integer) 0 redis 127.0.0.1:6379[1]> smembers sk02 1) "hive" redis 127.0.0.1:6379[1]> sadd sk02 hadoop c (integer) 2 redis 127.0.0.1:6379[1]> smembers sk01 1) "hah" 2) "pig" 3) "c" 4) "hadoop" redis 127.0.0.1:6379[1]> smembers sk02 1) "c" 2) "hadoop" 3) "hive" redis 127.0.0.1:6379[1]> sinter sk01 sk02 1) "c" 2) "hadoop" redis 127.0.0.1:6379[1]> sunion sk01 sk01 1) "hah" 2) "pig" 3) "c" 4) "hadoop" redis 127.0.0.1:6379[1]> sdiff sk01 sk02 1) "pig" 2) "hah" redis 127.0.0.1:6379[1]>
关于set的描述就到此请注意最后三个集合的操作:差集,交集,并集这三种比较常用。如果可以的话,我会举个例子。看看Redis是怎么实现关系型数据中的联合查询
第二种:SortedSet这是一种带有排序的set集合,适用性不是很多。简单介绍一下常用的操作
redis 127.0.0.1:6379> Flushdb OK redis 127.0.0.1:6379> DBSIZE (integer) 0 redis 127.0.0.1:6379> zadd ssk01 1 a 2 b 3 c (integer) 3 redis 127.0.0.1:6379> zadd ssk01 4 a (integer) 0 redis 127.0.0.1:6379> zadd ssk01 1 a (integer) 0 redis 127.0.0.1:6379> zrem ssk01 a (integer) 1 redis 127.0.0.1:6379> zrank ssk01 b (integer) 0 redis 127.0.0.1:6379> zrank ssk01 c (integer) 1 redis 127.0.0.1:6379> zadd ssk01 1 a (integer) 1 redis 127.0.0.1:6379> zrank ssk01 a (integer) 0 redis 127.0.0.1:6379> zrank ssk01 c (integer) 2 redis 127.0.0.1:6379> ZREVRANGE ssk01 b (error) ERR wrong number of arguments for 'zrevrange' command redis 127.0.0.1:6379> zcount ssk01 0 -1 (integer) 0 redis 127.0.0.1:6379> zcount ssk01 0 3 (integer) 3 redis 127.0.0.1:6379> zrangebyscore ssk01 0 3 1) "a" 2) "b" 3) "c" redis 127.0.0.1:6379>
第三种数据类型:map这种键值对的结构在实际应用中也是比较多的
//存放一个键值对 redis 127.0.0.1:6379> hset mk01 a A (integer) 1 redis 127.0.0.1:6379> hset mk01 b B (integer) 1 //存放多对键值对 redis 127.0.0.1:6379> hmset mk01 c C d D OK //获得所有的键值对 redis 127.0.0.1:6379> HGETALL mk01 1) "a" 2) "A" 3) "b" 4) "B" 5) "c" 6) "C" 7) "d" 8) "D" //获得mk01中键为a对应的值 redis 127.0.0.1:6379> hget mk01 a "A" //取出多个键值对 redis 127.0.0.1:6379> hmget mk01 a b d 1) "A" 2) "B" 3) "D" //判断a是否存在 redis 127.0.0.1:6379> HEXISTS mk01 a (integer) 1 //删除键为a的数据 redis 127.0.0.1:6379> hdel mk01 a (integer) 1 redis 127.0.0.1:6379> HEXISTS mk01 a (integer) 0 //返回map的长度 redis 127.0.0.1:6379> hlen mk01 (integer) 3 redis 127.0.0.1:6379> hkey mk01 (error) ERR unknown command 'hkey' //获得所有的key redis 127.0.0.1:6379> hkeys mk01 1) "b" 2) "c" 3) "d" //获得所有的value值 redis 127.0.0.1:6379> hvals mk01 1) "B" 2) "C" 3) "D"
以上就是Redis的所有数据类型。是不是很简单!注意多敲几遍,熟悉了才能灵活运用
相关推荐
Redis 提供了多种数据类型,主要包括五种基本类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)以及Sorted Set(有序集合)。 - **String(字符串)**:最简单的一种数据类型,可以存储二进制数据...
Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这里以最常见的字符串类型为例,演示读写操作: 1. **写入数据**: 使用`set`方法可以将键值对...
1. **Redis数据类型**:String、List、Set、Hash、Sorted Set等,以及它们各自的使用场景。 2. **持久化**:RDB(快照)和AOF(Append Only File)两种持久化方式,以及各自优缺点。 3. **主从复制**:了解复制过程...
实际迁移过程中,我们以两个场景为例:一是从一个Redis集群(Cluster_A)迁移到另一个Redis集群(Cluster_B),二是从Redis集群(Cluster_A)迁移到单个Redis实例(Redis_C)。在迁移前,务必先检查源和目标Redis...
### Redis 数据类型详解:Zset 和底层实现 #### 一、Zset(有序集合) **1.1 什么是Zset?** Zset 是 Redis 提供的一种数据类型,它支持存储唯一的成员(member)并为每个成员关联一个分数(score)。Zset 主要...
Redis,作为一个高性能的键值对数据存储系统,不仅支持简单的字符串、整数和浮点数等数据类型,还能够处理二进制数据。在实际应用中,存储和处理二进制数据是常见的需求,比如图片、音频、视频的元数据或者数据库的...
- **数据类型**:Redis支持五种基本数据类型:字符串、列表、集合、有序集合和哈希表,每种类型都有其独特应用场景。 - **操作命令**:Redis提供丰富的命令用于创建、读取、更新和删除数据,以及进行复杂的操作,...
本内容将详细介绍Redis的主要功能、数据类型、单进程单线程设计、优势、数据淘汰策略以及集群方案等知识点。 首先,Redis的主要功能包含哨兵(Sentinel)和复制(Replication)功能。哨兵系统是用于管理多个Redis...
- **数据类型**:Memcached只支持简单的字符串类型,而Redis支持更丰富的数据类型。 - **性能**:尽管两者都是基于内存的存储解决方案,Redis的性能远超Memcached。 - **持久化**:Redis支持数据的持久化,而...
Redis 与 memcached 相比,具有明显的优势:它支持更丰富的数据类型,如 String、List、Set、Sorted Set 和 Hashes,能够实现更多复杂的数据结构操作。此外,Redis 的性能更优,读写速度极快,并且提供了数据持久化...
2. **数据浏览**:查看和编辑键值对,支持多种数据类型(字符串、哈希、列表、集合、有序集合)的展示和编辑。 3. **数据操作**:执行基本的Redis命令,如GET、SET、DEL、HGETALL等,以及批量操作。 4. **监控与报警...
本书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍。& W3 B, |3 M4 O5 |- k...
1. 支持复杂数据类型:Redis 不仅限于字符串,还支持多种数据结构,可以实现更复杂的应用场景。 2. 更快的速度:Redis 的运行效率通常高于 memcached。 3. 数据持久化:Redis 可以将内存中的数据定期同步到硬盘,...
Redis支持的数据类型包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。例如,你可以创建一个列表: ```python r.rpush('mylist', 'item1', 'item2', 'item3') ``` 然后,...
对于列表类型的数据,我们可以使用`lpush`或`rpush`方法在列表的头部或尾部添加元素: ```python list_key = 'example_list' item1 = 'item1' item2 = 'item2' r.lpush(list_key, item1) r.rpush(list_key, ...
首先,memcached仅支持简单的字符串类型,而Redis支持更丰富的数据类型,如列表、集合、有序集合等。其次,Redis的速度比memcached要快得多,这得益于其优化的数据结构和内存操作效率。最后,Redis可以持久化数据到...
3. **数据浏览**:以树状视图或表格形式展示数据,支持多种数据类型,包括字符串、哈希、列表、集合和有序集合。 4. **数据导入与导出**:可以将 Redis 数据导出为 JSON、CSV 或其他格式,同时也可以导入这些格式的...
它的特点是数据模型多样化,支持字符串、哈希、列表、集合、有序集合等丰富的数据类型。Python 作为一门广泛使用的编程语言,提供了多种库来与 Redis 进行交互,如 redis-py。 在"python_redis_demp"这个项目中,...
java redis服务器java版redis 服务EF-Redis 介绍ef-Redis是java版本的redis服务器命令仅支持服务连接与五大基本类型相关的命令存储仅支持AOF日志多路复用支持epoll,kqueue,select默认优先级由高到低,同时支持本地...
1. 数据类型:Redis提供了五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),每种类型都有其特定的应用场景。 2. 持久化:为了防止数据丢失,Redis提供了RDB(快照...