`
zc985552943
  • 浏览: 290804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11842
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:27118
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:15985
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:27211
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13665
社区版块
存档分类
最新评论

03_(B)Redis数据类型

 
阅读更多

千呼万唤始出来,呵呵(没有犹抱琵琶半遮面)。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的所有数据类型。是不是很简单!注意多敲几遍,熟悉了才能灵活运用

 

 

 

 

  • 大小: 132.4 KB
  • 大小: 114.4 KB
  • 大小: 124.4 KB
分享到:
评论
1 楼 nanjiwubing123 2014-09-05  
嗨,同学,可以举个简单的例子吗?“如果可以的话,我会举个例子。看看Redis是怎么实现关系型数据中的联合查询”

相关推荐

    java大数据作业_8Redis、Thrift、Hadoop2

    Redis 提供了多种数据类型,主要包括五种基本类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)以及Sorted Set(有序集合)。 - **String(字符串)**:最简单的一种数据类型,可以存储二进制数据...

    redis读写缓存数据.zip_beautifulfi8_redis_读写

    Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这里以最常见的字符串类型为例,演示读写操作: 1. **写入数据**: 使用`set`方法可以将键值对...

    golang_mysql_redis面试资料

    1. **Redis数据类型**:String、List、Set、Hash、Sorted Set等,以及它们各自的使用场景。 2. **持久化**:RDB(快照)和AOF(Append Only File)两种持久化方式,以及各自优缺点。 3. **主从复制**:了解复制过程...

    Redis集群数据迁移操作文档

    实际迁移过程中,我们以两个场景为例:一是从一个Redis集群(Cluster_A)迁移到另一个Redis集群(Cluster_B),二是从Redis集群(Cluster_A)迁移到单个Redis实例(Redis_C)。在迁移前,务必先检查源和目标Redis...

    redis数据类型八股文,看这一篇就够了

    ### Redis 数据类型详解:Zset 和底层实现 #### 一、Zset(有序集合) **1.1 什么是Zset?** Zset 是 Redis 提供的一种数据类型,它支持存储唯一的成员(member)并为每个成员关联一个分数(score)。Zset 主要...

    redis存储二进制数据测试代码

    Redis,作为一个高性能的键值对数据存储系统,不仅支持简单的字符串、整数和浮点数等数据类型,还能够处理二进制数据。在实际应用中,存储和处理二进制数据是常见的需求,比如图片、音频、视频的元数据或者数据库的...

    Redis windows 32bit / b64bit

    - **数据类型**:Redis支持五种基本数据类型:字符串、列表、集合、有序集合和哈希表,每种类型都有其独特应用场景。 - **操作命令**:Redis提供丰富的命令用于创建、读取、更新和删除数据,以及进行复杂的操作,...

    redis面试题及其答案.pdf

    本内容将详细介绍Redis的主要功能、数据类型、单进程单线程设计、优势、数据淘汰策略以及集群方案等知识点。 首先,Redis的主要功能包含哨兵(Sentinel)和复制(Replication)功能。哨兵系统是用于管理多个Redis...

    Redis面试题(含答案)_20190220222533.pdf

    - **数据类型**:Memcached只支持简单的字符串类型,而Redis支持更丰富的数据类型。 - **性能**:尽管两者都是基于内存的存储解决方案,Redis的性能远超Memcached。 - **持久化**:Redis支持数据的持久化,而...

    Redis面试题集

    Redis 与 memcached 相比,具有明显的优势:它支持更丰富的数据类型,如 String、List、Set、Sorted Set 和 Hashes,能够实现更多复杂的数据结构操作。此外,Redis 的性能更优,读写速度极快,并且提供了数据持久化...

    redis_Linux+Win_可视化客户端

    2. **数据浏览**:查看和编辑键值对,支持多种数据类型(字符串、哈希、列表、集合、有序集合)的展示和编辑。 3. **数据操作**:执行基本的Redis命令,如GET、SET、DEL、HGETALL等,以及批量操作。 4. **监控与报警...

    Redis实战.azw3

    本书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍。& W3 B, |3 M4 O5 |- k...

    30道Redis面试题.docx

    1. 支持复杂数据类型:Redis 不仅限于字符串,还支持多种数据结构,可以实现更复杂的应用场景。 2. 更快的速度:Redis 的运行效率通常高于 memcached。 3. 数据持久化:Redis 可以将内存中的数据定期同步到硬盘,...

    python导入redis库使用jar包

    Redis支持的数据类型包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。例如,你可以创建一个列表: ```python r.rpush('mylist', 'item1', 'item2', 'item3') ``` 然后,...

    Python操作Redis的小示例

    对于列表类型的数据,我们可以使用`lpush`或`rpush`方法在列表的头部或尾部添加元素: ```python list_key = 'example_list' item1 = 'item1' item2 = 'item2' r.lpush(list_key, item1) r.rpush(list_key, ...

    Redis面试专题及答案(上).pdf

    首先,memcached仅支持简单的字符串类型,而Redis支持更丰富的数据类型,如列表、集合、有序集合等。其次,Redis的速度比memcached要快得多,这得益于其优化的数据结构和内存操作效率。最后,Redis可以持久化数据到...

    Redis Desktop Manager 2021.zip

    3. **数据浏览**:以树状视图或表格形式展示数据,支持多种数据类型,包括字符串、哈希、列表、集合和有序集合。 4. **数据导入与导出**:可以将 Redis 数据导出为 JSON、CSV 或其他格式,同时也可以导入这些格式的...

    python_redis_demp

    它的特点是数据模型多样化,支持字符串、哈希、列表、集合、有序集合等丰富的数据类型。Python 作为一门广泛使用的编程语言,提供了多种库来与 Redis 进行交互,如 redis-py。 在"python_redis_demp"这个项目中,...

    B站【编程不良人】Redis学习笔记

    1. 数据类型:Redis提供了五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),每种类型都有其特定的应用场景。 2. 持久化:为了防止数据丢失,Redis提供了RDB(快照...

    spring data redis 官方文档

    - **对象到 Hash 映射**:支持将对象映射到 Redis 的 Hash 数据结构中,便于存储复杂数据类型。 - **键空间操作**:提供了对键空间的高级操作支持,如查询、过期时间设置等。 - **次级索引**:支持定义次级索引来...

Global site tag (gtag.js) - Google Analytics