什么是redis

  Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求(非关系型的、分布式的、开源的。水平可扩展的)。

  优点:
    对数据高并发读写
    对海量数据的高效率存储和访问
    对数据的可扩展性和高可用性
  缺点:
    redis (对事务的处理非常简单)
    无法做到太复杂的关系数据库模型
  Redis是以key-value store 存储,data structure service 数据结构服务器。键可以包含:(string)字符串,哈希,(list)链表,(set)集合,(zset)有序集合。这些数据集合都支持push/pop、add/remove及取交集和并集以及更丰富的操作,redis支持各种不同的方式排序,为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加到文件记。

redis的应用场景

  缓存(数据查询、短连接、新闻内容、商品内容等等)。(最常见的应用场景)

  分布式集群架构中的session分离。

  任务队列。(秒杀、抢购、12306等等)

  应用排行榜。

  网站访问统计。

  数据过期处理(可以精确到毫秒)

Redis的安装

  redis是C语言开发, 安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc,安装命令是:yum install gcc-c++

  1、redis下载:http://download.redis.io/releases/redis-3.2.8.tar.gz

  2、将redis-3.2.8.tar.gz拷贝到/home目录下

  3、解压: tar -zxvf redis-3.2.8.tar.gz

  4、进入解压后的目录进行编译

    cd /home/redis-3.2.8

    make

  5、进入到src下进行安装:make install

  6、创建两个文件夹存放redis的命令和配置文件

    mkdir -p /home/redis/bin

    mkdir -p /home/redis/etc

  7、把redis-3.2.8下的redis.conf移动到/home/redis/etc

  8、把redis-3.2.8/src中的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server移动到/home/redis/bin目录下,命令:

mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server  /home/redis/bin

  9、启动时需要指定配置文件:

./bin/redis-server etc/redis.conf

  10、出现下图所示表示redis启动成功

  11、若要将redis改成后台启动,需要修改redis.conf配置文件,将daemonize的值改为yes

通过jedis连接redis单机

  1、依赖的jar包:

    commons-pool2-2.4.2.jar

    jedis-2.9.0.jar

  2、通过创建jedis对象,连接redis服务,代理如下:

    public static void testJedisSingle() {
Jedis jedis = new Jedis("192.168.2.120", 6379);//创建jedis对象
jedis.set("name", "zhangsan");//设置数据
String name = jedis.get("name");//获取数据
System.out.println(name);
jedis.close();//关闭连接
}

  注:外部链接连接redis失败的解决办法。一般情况下出现这种情况是因为防火墙,将防火墙关闭或者将6379端口加到防火墙中。

  3、使用连接池连接redis,代码如下:

    public static void redisPool() {
JedisPoolConfig config = new JedisPoolConfig();
//最大连接数
config.setMaxTotal(30);
//最大连接空闲数
config.setMaxIdle(2); JedisPool pool = new JedisPool(config, "192.168.2.120", 6379);
Jedis jedis = null; try {
jedis = pool.getResource();
jedis.set("name", "lisi");
String name = jedis.get("name");
System.out.println(name);
}catch(Exception ex){
ex.printStackTrace();
}finally{
if(jedis != null){
//关闭连接
jedis.close();
}
}
}

redis介绍、单机安装以及java调用的更多相关文章

  1. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  2. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  3. Redis介绍、安装部署、操作

    学习连接:http://www.runoob.com/redis/redis-tutorial.html 一.Redis介绍 Redis是NoSql的一种. NoSql,全名:Not Only Sql ...

  4. ElasticSearch5在Ubuntu系统下的安装和Java调用

    ElasticSearch是开源搜索平台的新成员,实时数据分析的神器.可以理解为作为搜索的数据库,可以提供搜索功能.对比关系型数据库,具有以下的相似关系: 关系型数据库 数据库 表 行 列 Elast ...

  5. redis介绍、安装、redis持久化、redis数据类型

    1.redis介绍  2.安装管网:https://redis.io/下载:wget -c http://download.redis.io/releases/redis-4.0.11.tar.gz解 ...

  6. redis介绍以及安装

    一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的values类型相对更多,包括字符串.列表.哈希散列表.集合,有序集合. 这些数据类型都支持pus ...

  7. 1.Redis介绍以及安装

    Redis介绍 Redis是一个开源的(BSD开源协议),内存数据结构存储,被用于作为数据库,缓存和消息代理. Redis支持如下数据结构: string(字符串) hashes(哈希) lists ...

  8. redis介绍和安装(一)

    Redis介绍:redis是一个key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多,包括 string(字符串). list(链表).set(集合).zset( ...

  9. Redis介绍、安装、配置

    NoSQL介绍 NoSQL(NoSQL=Not Only SQL),意为反SQL运动,是一项全新的数据库革命性运动.指的是非关系型数据库,解决了传统的关系型数据库,难以解决的超大规模和高并发的的问题 ...

随机推荐

  1. 【NOIP2012普及组】质因数分解

    P1075 质因数分解 假期第一天就给一道入门难度的题写题解…… 这道题一开始就被我想复杂了:埃式筛,欧拉筛……然而开一个1e9的数组?不现实. 直到看到题解区的dalao用唯一分解定理: 算术基本定 ...

  2. python接口自动化之用HTMLTestRunner生成html测试报告

    [第一步]:引入HTMLTestRunner包 1.下载HTMLTestRunner,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html ...

  3. php设计模式之多态实例代码

    <?php header("Content-type:text/html;charset=utf-8"); /** * 虎 */ abstract class Tiger { ...

  4. 题解【CJOJ1071/UVA】硬币问题

    P1071 - [Uva]硬币问题 Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目 ...

  5. ClassLoad

    是什么 用来加载 Class 的.它负责将 Class 的字节码形式转换成内存形式的 Class 对象.字节码可以来自于磁盘文件 .class,也可以是 jar 包里的 .class,也可以来自远程服 ...

  6. winform学习(2)窗体属性

    窗体也属于控件(controls) 主窗体:在Main函数中创建的窗体,当关闭主窗体时,整个程序也就关闭了. 如何打开控件属性面板: ①在该控件上单击鼠标右键--属性. ②选中该控件,按F4 窗体常用 ...

  7. ABB工业机器人(条件执行数字信号判断,画方or画圆)

    一.前戏 条件:从安全点,到工具区域夹取工具(笔),到工作区域,判断数字信号 Di1 =1 ,Ture :画方,False:画圆,回到工具区域放下工具(笔),回到安全点 二. 准备工作 校准tcp工具 ...

  8. Django数据迁移时(或者新建模型时)报错:Did you install mysqlclient,解决后又报错:mysqlclient 1.3.13 or newer is required;you have 0.9.3

    报错信息如下: 解决方法一: 给项目根目录下mysite应用下的__init__.py文件加入如下代码: 运行又报错: 报错信息是:  mysqlclient版本太低 点击上图框中的链接进入到pyth ...

  9. mvc:annotation-driven的前缀 "mvc"未绑定

    缺少MVC的配置,正确配置如下: <beans xmlns="http://www.springframework.org/schema/beans"       xmlns ...

  10. 【做题笔记】P1969 积木大赛

    非常感谢 rxz 大佬提供的思路. 首先放个图(rxz 画的) 采用贪心的策略:对于一个期望高度 \(h_i\) ,如果大于 \(h_{i-1}\),那么最终答案要加上二者之差:如果小于或等于,那么说 ...