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

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

    1 Redis常用的数据类型有什么? 2 如何配置启动持久化AOF? 3 查看以test开头的所有的key 4 Redis如何将key为a的hash中key为b对应的值加1 5 Redis有几种订阅方法? 6 简述Redis建立连接池的代码 7 使用jedis向队列b...

    redis面试题及其答案.pdf

    Redis主要有哪些功能? Redis支持哪几种数据类型? Redis是单进程单线程的? Redis为什么是单线程的? 使用Redis的优势? Redis集群方案应该怎么做?都有哪些方案? ...

    Redis实战.azw3

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

    Redis的使用

    a)了解NoSQL及其产品 b)掌握Redis的安装和启动 c)掌握Redis的数据类型 d)掌握Redis的操作命令 e)掌握JRedis的使用 f)掌握Redis的持久化 g)掌握Redis的replication

    redis-3.2.0-win64

    TYPE key 返回某个key元素的数据类型 ( none:不存在,string:字符,list,set,zset,hash) KEYS pattern 返回匹配的key列表 (KEYS foo*:查找foo开头的keys) RANDOMKEY 随机获得一个已经存在的key,如果当前数据库为空...

    linux虚拟机上安装配置redis3.0.7

    我们给大家列出详细的图文步骤教给大家在linux虚拟机...Redis数据类型 b) 在/usr/local创建redis目录(mkdir redis) 将redis-3.0.7.tar.gz复制到此目录下(cy /root/redis-3.0.7.tar.gz /usr/local/redis),进行解压(ta

    Redis简介

    与其它键值数据存储相比,Redis有一组相对丰富的数据类型。 c.Redis可以将数据复制到任意数量的从机中。 Redis的优点 a.异常快:Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    这里之前的配置有问题,因为参数类型不一致,有时候jar和环境的问题,导致参数根据index对应,会处理问题, 理论上加另一个 name,就可以解决,现在把name 和type都加上,更保险。 --> 二、登录获取上一个URL...

    Redis云管理平台CacheCloud.zip

    例如:100个redis数据节点组成的redis-cluster集群,如果单纯手工安装,既耗时又容易出错。2.实例碎片化 作为一个Redis管理员(可以看做redis DBA)需要帮助开发者管理上百个Redis-Cluster集群,分布在数百台机器上,...

    解决redis与Python交互取出来的是bytes类型的问题

    基本代码 from redis import * if __name__ == '__main__': ...这里我们存进去的是字符串类型的数据,取出来却是字节类型的,这是由于python3的与redis交互的驱动的问题,Python2取出来的就是字符串类型的。 为了得到

    java 大数据 spark flink redis hive hbase kafka 面试题 数据结构 算法 设计模式.zip

    逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何...

    大数据与人工智能-fy.docx

    创建内部表的同时,会将数据挪到数据仓库指定的位置(正确答案) B.删除内部表时只删除源数据 C.创建内部表时,只记录数据指定的路径 D.删除外部表时删除表中数据和源数据 大数据与人工智能-fy全文共22页,当前为第1页...

    【尚硅谷】徐靖博 最新电商项目实战(完结)

    r1 b# x1 k3 e 137.01 交叉检索redis 138.02 交叉检索redis* Y7 `1 z9 P" D% J+ E 139.03 判断交叉检索的key 140.04 redis的使用总结: C& g/ P ^; B. n8 Y6 d1 C# ^9 l 141.05 一些小问题. @( |. p' J! V5 s; Z+ E ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 JS的基本数据类型 04 JS的运算符 05 JS的控制语句与循环 06 JS的循环与异常 07 JS的字符串对象 08 JS的数组对象 09 JS的函数对象 第42章 01 JS的函数作用域 02 JS的window对象之定时器 03 JS的history对象和...

    leetcode下载-interview:面试

    leetcode下载 interview Python 类变量 静态变量 实例变量区别 垃圾回收机制 循环引用怎么解决 协程 单例 ...GIL是什么为什么会限制效率 ...支持哪些数据类型 zset 底层数据结构是什么,为什么这么设计 redis支持事

    《在线视频播放平台》-无数据库账密-带数据库文件.zip

    描述:类似于bilibili的一个视频网站。 大致的功能: ​ 用户可以上传视频,也可以浏览器他人的视频,也可以评论其他人的视频,也...《在线视频播放平台》前后台-前端功能演示,Redis实现首页热点数据缓存 防止缓存雪

    python数据分析随书代码

    2.4.1 数据类型对象 21 2.4.2 字符码 21 2.4.3 Dtype构造函数 22 2.4.4 dtype属性 23 2.5 一维数组的切片与索引 23 2.6 处理数组形状 24 2.6.1 堆叠数组 27 2.6.2 拆分NumPy数组 30 2.6.3 NumPy数组的属性 ...

    sourcecode:原始学习1)HashMap 2)NIO编程模型,利用Java的NIO实现完成聊天室程序

    >系统缓存->路由器缓存-> IPS服务器缓存->根域名服务器缓存->顶级域名服务器缓存3.1 redis基本数据类型字符串:最基本的数据类型,二进制安全命令:set,get,incr哈希:字符串元素组成的字典,合适的存储对象命令:...

    大厂面试专栏,冲击大厂必备

    单线程、数据类型、淘汰机制、集群模式 第八篇:MySQL 那点破事!索引、SQL调优、事务、B+树、分库分表 第九篇:Mybatis 那点破事! ORM,动态SQL、动态代理 第十篇:Spring 那点破事!IOC、AOP、生命周期、动态代理...

    二十道面试题每个题你能讲个十分钟恭喜你在上海至少16k(Java中级开发)

    给你们上点干货,让面试官膜拜 面试题: HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理 Spring的AOP和IOC是什么?... Redis支持的数据类型以及使用场景,持

Global site tag (gtag.js) - Google Analytics