Redis学习基础二
回顾:上一基础中已了解 ( 什么是redis 、redis 的三大特点、安装,和数据配置)
接下来浅尝Redis的数据类型,时间煮雨......
一、Redis数据类型
redis支持五中数据类型(string字符串、hash哈希、list列表、set集合、zset有序集合)
(一)String 字符串
1、string 是redis 中最基本的类型,可以理解成与memcached一模一样的类型,一个key对应一个value
2、string 类型是二进制安全的,意思是redis 的string可以包含任何数据,比如jop图片或者序列化的对象
3、sting 类型是redis最基本的数据类型,一个键最大能存储512MB
实战
redis 127.0.0.1:6379> set name 'myis lcc'
OK
redis 127.0.0.1:6379> get name
"myis lcc"
redis 127.0.0.1:6379>
这里用到了redis 的 SET 和 GET命令,键为name,对应的值为 myis lcc
(二)Hash 哈希
1、redis hash 是一个键值对集合
2、redis hash 是一个string类型的 field 和 value 的映射表, hash 特别适合用于储存对象
(一个键最大储存512MB)
实战
redis 127.0.0.1:6379> HMSET user:1 username redis password redis points 200
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "redis"
3) "password"
4) "redis"
5) "points"
6) "200"
redis 127.0.0.1:6379>
以上实例中 hash 数据类型储存了包含用户脚本的信息的用户对象,实例中用了 Redis HMSET \ HGETALL命令, user:1为键名
(每个hash可以储存2的32次方-1键值对(40多亿))
(三)List 列表
1、redis 列表是简单的字符串列表,安装顺序排序。可以添加一个元素导入列表的左边(头部) 或者右边(尾部)
实战
redis 127.0.0.1:6379> lpush redis.list php
(integer) 1
redis 127.0.0.1:6379> lpush redis.list mysql
(integer) 2
redis 127.0.0.1:6379> rpush redis.list cc
(integer) 3
redis 127.0.0.1:6379> lrange redis.list 0 10
1) "mysql"
2) "php"
3) "cc"
redis 127.0.0.1:6379>
(列表最多可以储存2的32次方-1个元素(4294967295 每个类别可以存40多亿))
(四)Set 集合
1、redis 的集合 set 是string 类型的无序集合
2、集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)
3、sadd 命令
添加一个sting元素到集合中,成功返回1,如果元素已经存在返回 0, key对应的set 不存在发生错误则返回错误
sadd key member
实例
redis 127.0.0.1:6379> sadd redis.set mysql
(integer) 1
redis 127.0.0.1:6379> sadd redis.set php
(integer) 1
redis 127.0.0.1:6379> sadd redis.set cc
(integer) 1
redis 127.0.0.1:6379> sadd redis.set mysql
(integer) 0
redis 127.0.0.1:6379> smembers redis.set
1) "php"
2) "cc"
3) "mysql"
redis 127.0.0.1:6379>
注意:以上实例中 mysql 添加了两次,但是根据集合内元素的唯一性,第二次插入的元素会被忽略
(集合中最大的成员数位2的32次方-1(4294967295 每个类别可以存40多亿))
(五)Zset 有序集合
1、redis zset 和 set 一样也是string 类型的元素集合,且不允许重复成员
2、不同的是每个元素都会关联一个double类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序
3、zset 的成员是唯一的,但分数(score)却可以重复
4、zadd 命令
添加元素到集合,元素在集合中存在则更新score
zadd key score member
实战
redis 127.0.0.1:6379> zadd redis.zset.cn 0 php
(integer) 1
redis 127.0.0.1:6379> zadd redis.zset.cn 0 mysql
(integer) 1
redis 127.0.0.1:6379> zadd redis.zset.cn 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd redis.zset.cn 0 redis
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE redis.zset.cn 0 10
1) "mysql"
2) "php"
3) "redis"
redis 127.0.0.1:6379>
以上就是浅尝Redis 数据类型,接下来进行命令实践
注明:纯手工码字搬运哟
Redis学习基础二的更多相关文章
- Redis学习笔记二 (BitMap算法分析与BitCount语法)
Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...
- Redis学习---基础学习[all]
什么是NoSQL型数据库 NoSQL数据库---NoSQL数据库的分类 Redis学习---NoSQL和SQL的区别及使用场景 Redis学习---负载均衡的原理.分类.实现架构,以及使用场景 什么是 ...
- redis 学习(二)-- 通用命令
redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...
- redis学习教程二《四大数据类型》
redis学习教程二<四大数据类型> 四大数据类型包括:字符串 哈希 列表 集合一 : Redis字符串 Redis字符串命令用于管理Redis中的字符串 ...
- redis学习(二) redis数据结构介绍以及常用命令
redis数据结构介绍 我们已经知道redis是一个基于key-value数据存储的数据结构数据库,这里的key指的是string类型,而对应的value则可以是多样的数据结构.其中包括下面五种类型: ...
- C# Redis学习系列二:Redis基本设置
上一篇:C# Redis学习系列一:Redis的认识.下载.安装.使用 一.redis 设置密码 使用下载好的 redis-cli.exe 指令: 1.设置密码: config set require ...
- Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串
一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...
- Redis学习-基础环境介绍(二)
1.通过VMware安装了Centos6.8系统 2.Reids安装过程,需要GCC环境 »通过下面命令,根据提示直接安装 1 yum install gcc 3.Redis选用的是3.2.4(建议使 ...
- 【Redis】Redis学习(二) master/slave、sentinel、Cluster简单总结
项目中用到Redis,所以准备学习一下,感觉Redis的概念还是很多的,什么主从模式.sentinel模式.集群模式的,一下子都晕了,我觉得还是有必要先理清这些基本概念再说. 一.单节点实例 单节点实 ...
随机推荐
- Django中的Project和App的区别
Django是一个非常流行的用python编写的Web框架,在使用Django之前,我们需要了解一些基本的概念,这样可以在使用Django的时候对其有一个更加深入的把握.本文主要介绍Django中两个 ...
- java并发编程原理
一.java内存模型 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节.此处的变量与Java编程时所说的变量不一样,指包括了实例字段 ...
- python中__name__属性的使用
python常用模块目录 1.打印出函数名字而非函数名对应的地址 )打印的是函数地址 def func(): print("我是%s函数"%func) func() ------- ...
- Python发送邮件(最全)
简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件. Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听 ...
- TeamWork#3,Week5,Scrum Meeting 11.13
最近我们根据之前发现的问题, 补充了相关知识,正在努力修复出现的问题,调整程序结构. 成员 已完成 待完成 彭林江 之前没有考虑到网站信息更新导致的程序可变性,正在调整爬虫程序结构 更换爬虫结构 郝倩 ...
- web窗体之四则运算
1,计算方法: namespace ASP.NET { public class JiSuan { public int S; public int Result { get { return S; ...
- C++ MOOC
相关课程列表: C++远征之起航篇 C++远征之离港篇 C++远征之封装篇 上 C++远征之封装篇 下 C++远征之继承篇 C++远征之多态篇 授课老师:james_yuan 在寒假,我主要选择 C+ ...
- 项目Beta冲刺(团队)第四天
1.昨天的困难 返回提问者昵称的时候返回信息不全,个别信息没有返回过去 一开始ProgressBar控件的显示有问题 需要实现类似聊天的功能,采用listview承载聊天内容,对于自定义适配器的构建使 ...
- Hibernate(十)
1.批处理 //批处理 :批量处理 //批量插入数据 @Test public void addData(){ Random random=new Random(); for(int i=1;i< ...
- debug阶段团队贡献分分配
小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长).程媛媛.杨钰宁.谭力铭 debug阶段各组员的贡献分分配如下: 姓名 团队贡献分 程媛媛 5.8 沈柏杉 6.5 谭力铭 3. ...