Redis入门

一.NoSQL概述

1.1什么是NoSQL

NoSQL(NoSQL=Not Only SQL),意即“不仅仅是SQL”,是一个全新的数据库理念,泛指非关系型的数据库。

1.2为什么需要NoSQL
  • 高负载
  • 高并发
  • 高可扩展
1.3主流NoSQL产品
  • 键值存储数据库(key-value)
    • 相关产品:Redis、Tekyo Cabinet/Tyrant、Voldemort、Berkeley DB
    • 典型应用:内存缓存、主要用于处理大量数据的高访问负载
  • 列存储数据库
    • 相关产品:HBase、Riak、Cassandra
    • 典型应用:分布式的文件系统
  • 文档型数据库
    • 相关产品:CouchDB、MongoDB
    • 典型应用:Web应用
  • 图形数据库
    • 相关产品:Neo4J、InfoGrid
    • 典型应用:社交网络
1.4NoSQL特点

在大数据存取上具备关系型数据库无法比拟的性能优势,例如:

  • 易扩展:去掉关系数据库的关系型特性,数据之间无关系,这样就非常容易扩展。
  • 大数据量、高性能:NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀,这就得益于它的无关系性,数据库的结构简单。
  • 灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
  • 高可用:NoSQL在不太影响性能的情况下,就可以方便的实现高可用的架构。

二.Redis概述

2.1Redis由来

…此处省略一万字…

2.2什么是Redis

Redis是C语言开发的一个开源的高性能键值对数据库,它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:

  • 字符串类型
  • 散列类型(hash)
  • 列表类型(list有序,不唯一)
  • 集合类型(set无序,且唯一)
  • 有序集合类型(set有序,且唯一)

这里写图片描述

2.3Redis的应用场景
  • 缓存(数据查询、短连接、新闻内容、商品内容等等)【最多使用】
  • 聊天室的在线好友列表
  • 任务队列(秒杀、抢购、12306等等)
  • 应用排行榜
  • 网站访问统计
  • 数据过期处理(可以精确到毫秒)
  • 分布式集群架构中的session分离

三.Redis安装和使用

这里写图片描述

3.1Redis在Ubuntu上的安装和使用
  • 安装redis编译的c环境,apt-get install build-essential

  • 将redis-3.0.0.tar.gz上传到Linux系统中

  • 解压到/usr/local下 tar -xvf redis-3.0.0.tar.gz -C /usr/local

  • 进入redis-3.0.0目录 使用sudo make命令编译redis

  • 在redis-3.0.0目录中 使用sudo make PREFIX=/usr/local/redis install命令安装redis到/usr/local/redis

  • 前端模式启动服务端:在/usr/local/redis/bin中执行./redis-server

    • 启动效果如下:

      这里写图片描述

    • 启动客户端:在/usr/local/redis/bin中执行./redis-cli

    • 启动后看到如上欢迎页面,但此窗口不能关闭,窗口关闭就认为redis也关闭了(类似Tomcat通过bin下的startup.bat的方式)

    • 关闭前端启动服务器:ctrl+c结束进程

  • 后端模式启动服务器解决方案:拷贝redis-3.0.0中的redis.conf(redis的配置文件)到安装目录redis/bin(地址随意,只要可以找到即可)中。可以通过修改配置文件配置redis后台启动,即服务器启动了但不会控制台窗口,将redis.conf文件中的daemonize从false修改成true表示后台启动。启动redis 在bin下执行命令redis-server redis.conf

    • 启动效果如下:

      这里写图片描述

    • 关闭后端模式启动服务器:

      • 方式一:先利用ps -ef | grep 6379查看端口占用的PID,再输入命令kill -9 PID号
      • 方式二:执行命令./redis-cli shutdown关闭
    • 如需远程连接redis,需配置redis端口6379在linux防火墙中开放

      /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
      /etc/rc.d/init.d/iptables save
3.2使用java操作Redis(Jedis——java redis)
  • 前提:redis端口在Linux防火墙汇总开放

  • 流程:

    • 导入jar包:jedis-2.7.0.jar和commons-pool2-2.3.jar
    • new Jedis(host,port)获得连接对象(设置host和port)
    • jedis.get(“username”)获得数据
    • Jedis.set(“addr”,”背景”)存储数据
  • 实例代码:

    package jedis;
    import org.junit.Test;
    import redis.clients.jedis.Jedis;
    public class JedisTest {
         
    //测试通过java程序访问redis数据库
    @Test
    //获得单一的jedis对象操作数据库(jedis---java redis)
    public void test1() {
        //1.获得连接对象 new Jedis(host,port);
        Jedis jedis = new Jedis("192.168.1.108",6379);
        //2.获得数据
        String username = jedis.get("username");
        System.out.println(username);
        
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值