Redis概述

0、Nosql: 一类新出现的数据库( Not only | No sql),它的特点:

     a、不支持sql语法

     b、存储结构跟传统的关系型数据库中的那种关系表完全不同,NoSql中存储的数据都是kv形式。

     c、nosql的世界中没有一种通用的语言,每种NoSQL数据库都有自己的API和语法,以及擅长的业务场景。

     d、NoSQL中的产品种类相当多。

          1、Mongodb,文档型nosql数据库,擅长做CMS系统(内容管理系统)

          2、Redis,内存数据库,数据结构服务器,号称瑞士军刀(精致),只要你有足够的想象力,它可以还给你无限的惊喜。

          3、Hbase,Hadoop生态系统中原生的一种nosql数据库,重量级的分布式nosql数据库,用于海量数据的场景。

          4、Cassandra,Hadoop生态系统中原生的一种分布式nosql数据库,后起之秀。

    nosql与sql数据库比较:

          1、适用场景不同,sql数据库适用于关系特别复杂的数据查询场景,nosql反之

          2、"事务"特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务。

          3、两者在不断地取长补短,呈现融合趋势。                      

1、Redis概念

      REmote Dictionary Server(Redis)是一个开源的,高性能的,适用ANSI,C语言编写的,遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-value存储系统,并提供多种语言API和memcached类似,Redis被称作是一款key-value内存存储系统或者内存数据库,同时由于它支持丰富的数据结构,又被称为一种数据结构服务器(Data Structure Server)。因为value可以是字符串(String)、哈希(Hash -> HashMap)、列表(list)、集合(sets)和有序集合(zset -> sorted sets)等类型。

     Redis与其他key-value缓存产品有以下三个特点:

          1、Redis支持数据的持久化,可以(手动或自动触发然后存储到磁盘中)将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

          2、Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储。底层是字节..

          3、Redis支持数据的备份,即Master-slave模式的数据备份。

2、Redis优势

          a、性能极高: Redis能读的速度是110000次/s,写的速度是81000次/s。

          b、丰富的数据类型:Redis支持二进制案例的String、List、Hash、Set及Sorted Set数据类型操作。

          c、原子操作:Redis的所有操作都是原子性的,同时redis还支持对几个操作全并后的原子性执行。也支持事务multi...exec;

          d、丰富的特性:redis还支持Publish/Subscribe,通知key过期,支持高可用集群等等特性。

          e、数据持久化机制:

                                       1、RDB方式:定期将内存数据dump到cip;

                                       2、AOF(append only file)持久化机制:用记日志的方式记录每一条数据更新操作,一旦出现灾难事件,可以通过日志重放来恢复整个数据库。WAL(write ahead log)先记录日志然后更新数据到内存中,内存中数据存不下移到磁盘形成hfile

3、Redis适用场景

          a、Top N需求:取最新的n个数据,如读取作家博客最新的50篇文章,通过list实现按时间排序的数据的高效获取;

          b、排行榜应用:以特定条件为排序标准,将其设成sorted set的score,进而实现高效获取;

          c、需要精准设定过期时间的应用:把sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了;

          d、计算器应用:Redis的命令都是原子性的,可以轻松地利用INCR、DECR命令来构建计数器系统;

          e、去除大量数据中的重复数据:将数据放入set中,就能实现对重复数据的排除;

          f、构建队列系统:使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统;

          g、实时系统,反垃圾系统:可以通过上面说到的set功能,你可以知道一个终端用户是否进行了某个操作,可以找到其操作的集合并进行分析统计对比等;

          h、publish/subscribe构建实时消息系统

          i、缓存(回话、商品列表、评论列表、经常查询的数据等)

4、Redis3.2.6安装

          a、linux安装方式

               1、rpm  exe

               2、yum  在线安装

               3、二进制发布包(jdk、mysql、scala)

               4、源码编译 redis(c语言)

          b、版本介绍

               1、3.X之前不支持分布式部署

               2、3.X之后支持分布式部署

          c、安装前准备

               1、cd  /usr/local/big_data/redis-3.2.6

               2、查看make是否安装  make -version (没有就安装yum -y install make)

               3、make MakeFile( ant  build.xml  和maven pom.xml项目构建工具)

               4、yum -y install gcc  和 yum -y install gcc+

          d、安装

               1、cd  /usr/local/big_data/redis-3.2.6

               2、make test 检测

               3、安装 make PREFIX=/usr/local/big_data/redis install

               4、把redis-3.2.6下redis.conf拷贝到redis目录下发现redis目录下有两个东西redis.conf和bin,可以把redis加入环境变量

                             export REDIS_HOME=/usr/local/big_data/redis/

                              export PATH=$PATH:$REDIS_HOME/bin

               5、启动redis-server

                    后台启动:nohup /usr/local/big_data/redis/bin/redis-server /usr/local/big_data/redis/redis.conf 1>/usr/local/big_data/redis/redis_std.log 2>/usr/local/big_data/redis/redis_err.log &

                    备注:后台弄到前台fg 1   (这个1是后台启动后出现的1还有进程号)

 

5、Redis客户端使用

               1、redis-cli命令行客户端使用

                    redis-cli默认找本机  进入后输入ping会输出PONG

                   bind 127.0.0.1  指绑定本机其它机器无法访问

                   protected-mode yes 默认保护模式改成no

                   redlis-cli -h ip -p 6379

               2、使用jedis(java redis)

                              <dependency>
                                             <groupId>redis.clients</groupId>
                                             <artifactId>jedis</artifactId>
                                             <version>2.9.0</version>
                              </dependency>

                  Jedis client = new Jedis("ip", 6379);

                  String pint = client.pint();

                  System.out.println(pint ); -- PONG

6、Redis的数据结构

String:(redis的基本类型,String类型是二进制安全的,意思是redis的string可以包含任何数据,比如图片或者序列化对象。一个键最大512M)

https://www.runoob.com/redis/strings-setex.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值