初识---Redis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011583316/article/details/83720073

博主最近在做一个练手Web项目,接触到了以前被我跳过的内容Redis,哈哈出来混迟早是要还的。于是呢在此也进行了一个简单的入门学习,拒绝懵逼状态。

在介绍Redis之前我们先谈谈什么是NoSQL。对我来说谈到NoSQL最先想到是的是啥呢,当然是Hbase,Hbase在我学习大数据的时候有过一定的了解,但是时隔一年除了知道是个啥其他的…没事,下一步就是梳理大数据的技术,学了忘<~>忘了学。


进入正文

NoSQL是什么

NoSQL(NoSQL = Not Only SQL ),意思是"不仅仅是SQL",泛指非关系型数据库,不仅仅是SQL?

为什么出现 NoSQL

今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展也却能很好的处理这些大的数据。

换句话说以下三方面成就了NoSQL

  • 满足对数据库高并发的读写
  • 满足对海量数据高效率存储和访问
  • 满足对数据库的高可扩展性和高可用性
    在这里插入图片描述
    NoSQL的产生就是为了解决大规模数据集合多重数据种类带来的挑战,说直白点在大数据领域是个宝。

主流的NoSQL产品

直接上图,虽然我只用过Hbase。

在这里插入图片描述

NoSQL的分类

主要有一下四类

  • 键值存储数据库(Redis)
  • 列存储数据库(Hbase)
  • 文档型数据库(MongoDB)
  • 图形数据库(InfoGrid)

在这里插入图片描述

NoSQL有何特点

在这里插入图片描述


下面就是Redis的介绍了

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。 —百度百科

支持的数据类型

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

这几种类型后面再一一介绍

Redis性能方面

官方测试完成了50个并发执行100000个请求。结果:读的速度是110000次/s,写的速度是81000次/s 。身为在校大学生的我,想想就头秃。

Redis应用场景

  • 缓存(数据查询等)我想这个应该是使用的最多的
  • 任务队列(秒杀)
  • 应用排行
  • 网站访问统计
  • 分布式集群架构中session分离

Redis的安装及简单实用

搬出一台虚拟机

  1. 环境安装,主要是因为Redis是用C语言开发的,编译需要依赖gcc环境,所以 yum install gcc-c++ 来一手,当然有就直接跳过了。
  2. 利用工具将安装包传到我是传到了/root/下,用的是Xftp。
  3. 理算当然得解压 tar -zxvf redis-3.0.7.tar.gz。
  4. 编译,将源码编译为.o文件
  5. 进入/root/redis下用执行make安装,如果失败了那就重来,实在没招那就重装系统。
  6. 创建一个目录 /usr/loca/redis 作为安装目录
  7. cd到/root/redis 目录 make PREFIX=/usr/local/redis install
    在这里插入图片描述
  8. 由于redis启动需要一个配置文件,将配置文件复制到 /root/redis/ cp /root/redis/redis.conf /root/redis
    完成以上步骤了你就可以直接启动了。启动服务端 ./bin/redis-server 后你就会发现,我干不了其他的了,我还得另起窗口这不是坑爹吗?所以我也不推荐你们这样做。
    8.1 后端模式
    vi /usr/local/redis/redis.conf 修改配置文件
    在这里插入图片描述
    8.2 启动时,指定配置文件
    在这里插入图片描述
    8.3关闭
    在这里插入图片描述

Redis的简单使用

在启动服务端后,在bin/执行./redis-cli,启动客户端进入以下
在这里插入图片描述
然后你就可以为所欲为了比如说

  • 测试redis是否正确安装成功
    向服务器发送 ping 命令,服务器返回 pong
    向服务器发送 set name tom
    get name 命令可以看到可以获取到tom的信息
    向服务器发送keys *
    可以查看服务器中一共有多少键值对的数据,可以查看到各个键值类型数据
    在这里插入图片描述

  • 数据类型
    String
    在这里插入图片描述
    掌握的操作:
    赋值
    格式: set key value
    例如:set username tom
    取值
    格式: get key
    例如: get username

      	先获取再设置
      		getset key value
      		例如: getset username jack
      		
      	删
      		del key
      		例如: del d
      
      了解:
      	对于数字类型 自增和自减
      	incr key   ++
      	decr key   --
      	
      	增加或减少指定的数量
      		incrby key int
      		decrby key int
      	拼接字符串
      		append key value
    

    List
    赋值:
    左边:lpush key value value2 value3
    右边:rpush key value value2 value3
    取值:
    左边:lpop key
    右边:rpush key

      获取所有元素
      	lrange 0 -1
      获取元素的个数
      	llen key
      	
      扩展:
      	lpushx key value :若有则添加 若没有则不添加
      	rpushx key value :若有则添加 若没有则不添加
      	
      	lrem key count value:从左边移除count个value
      		若count>0 :从左边移除count个value
      		若count<0 :从右边移除count个value
      		若count=0 :从右边移除所有的value
      	
      	lset key index value
      		设置链表中指定索引的元素值  0 代表是第一个
      			-1代表的是最后一个
    

    Hash:
    在这里插入图片描述

存值 在这里插入图片描述

取值
在这里插入图片描述

删除
在这里插入图片描述

set
	添加
		sadd key value1 valuse2
	删除
		srem key value1 valuse2
	获取
		smembers key 
	判断是否是是set中的一员
		sismember key value
	
	运算
		差集: sdiff s1 s2
		交集: sinter s1 s2 
		并集: sunion s3 s4
	
	获取数量
		scard key
		srandmember key:随机获取一个
		
		
	
	
sortedSet
	添加元素
		zadd key score m1 score m2
	获取元素
		zscore key m:获取指定成员的得分
		zcard key:获取key的长度
		
		
	删除元素
		zrem

通用的操作:

keys * :查看所有的key
del key:删除指定的key
exists key:判断一个key是否存在
rename oldkey newkey:重命名
expire key 秒数:
ttl key :查看一个key剩余存活时间
	-1:持久存活
	-2:不存在
type 判断一个可以属于什么类型

总结

关于Redis入门,我感觉这些东西应该是够了,随着自己的学习,后面也会更新更加深入的Redis的知识。一想到深入学习,啧啧啧----虽然头大,但是喜欢。

猜你喜欢

转载自blog.csdn.net/u011583316/article/details/83720073