Redis学习
2019-05-23 15:28
1161 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载请与博主联系,并标注来源。 https://blog.csdn.net/weixin_41606064/article/details/90421841
1. Redis简介
1.1 NoSQL的定义
学习Redis之前,我们先来了解一下NoSQL,相信大家基本上都有接触过MySQL,它是一种典型的关系型数据库,在我们实际应用过程中也是很频繁的。既然存在像MySQL这种类型的关系数据库,那么也就存在非关系数据库,没错,NoSQL就是非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的一个良好的补充。在实际应用开发过程中,NoSQL是一种用来解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方案。了解更多请点击这里
1.2 NoSQL数据的基本分类
- 键值(Key-Value)存储数据库
相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
数据模型: 一系列键值对
优势: 快速查询
劣势: 存储的数据缺少结构化 - 列存储数据库
相关产品:Cassandra, HBase, Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限 - 文档型数据库
相关产品:CouchDB、MongoDB
典型应用:Web应用(与Key-Value类似,Value是结构化的)
数据模型: 一系列键值对
优势:数据结构要求不严格
劣势: 查询性能不高,而且缺乏统一的查询语法 - 图形(Graph)数据库
相关数据库:Neo4J、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。
1.3 走进Redis
Redis是一种用C语言开发的一个开源的高性能的键值对数据库,它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型包括字符串类型、散列类型、列表类型、集合类型、有序集合类型。了解更多请点击这里
应用常景
- 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
- 分布式集群架构中的session分离。
- 聊天室的在线好友列表。
- 任务队列。(秒杀、抢购、12306等等)
- 应用排行榜。
- 网站访问统计。
- 数据过期处理(可以精确到毫秒)
2. Redis的下载与安装
Redis的官网网址链接:http://redis.io/
下载地址链接:https://redis.io/download
本文以在centos6.8的环境下安装Redis3.0.0进行讲解说明
在官网上下载redis-3.0.0.tar.gz安装包后,拷贝到Linux系统中,再使用# tar -zxf redis-3.0.0.tar.gz 解压到本地目录。由于Redis是由C语言开发的,在Linux系统运行需要先进行编译,编译redis源码的命令行
#cd redis-3.0.0(首先切换到redis-3.0.0源码文件夹,再进行编译)
#make
Redis的启动
- 启动方式1(前端启动方式):
切换到redis的文件下的bin目录下
#cd usr/local/redis/bin(注:此路径为博主设置的路径,根据自己的实际情况调整)
#./redis-server
- 启动方式2(后端启动方式):
(1)需要首先将redis源码包中的配置文件redis.conf复制到/usr/local/redis/bin下;
(2)使用vim指令修改刚复制的redis.conf文件,将其中的daemonize由no改为yes,
#vim redis.conf
(3)修改完成后,启动服务
#./redis-server redis.conf - 其他:使用Redis的客户端工具
下载链接:
链接:https://pan.baidu.com/s/1BZwPckLDAh8V8tf2f8S6dw
提取码:m3ja
至于安装过程基本上就是一路next了
安装成功后的界面如下:
这就是redis的客户端操作界面,使用方法也简单,和Navicat差不多。
首次使用客户端工具连接centos中的redis服务时,可能出现连接超时,或者是拒绝连接,处理方法可以参考博主的另一篇博客解决使用远程连接工具连接redis时,出现连接超时的方法
3.使用java语言调用redis
3.1认知jedis
jedis是集成了redis的一些命令操作,封装了redis的java客户端。下面介绍在java中常见的使用方式。
3.2jedis的使用
- 单实例使用的代码实现
@Test public void test1(){ //连接到Linux的Redis的数据库 Jedis jedis = new Jedis("192.168.12.128", 6379); //选择要操作的数据库 jedis.select(3);//操作第二个数据库 //存数据[5种类型] jedis.set("welcome","欢迎来到智能系统优化实验室");//设置字符串 jedis.hset("user:1001","username","cc"); jedis.hset("user:1001","age","22"); jedis.hset("user:1001","gender","男"); jedis.lpush("FootballTeamNames","日本","韩国","英国"); jedis.sadd("NBA","勇士","骑士"); jedis.zadd("english:scoreboard",90,"zhangsan"); jedis.zadd("english:scoreboard",91,"lisi"); jedis.zadd("english:scoreboard",92,"wangwu"); //取数据 System.out.println(jedis.get("welcome")); //关闭连接 jedis.close(); }
- 通过连接池的使用方式
@Test public void testJedisPool() { //创建一连接池对象 JedisPool jedisPool = new JedisPool("192.168.12.128", 6379); //从连接池中获得连接 Jedis jedis = jedisPool.getResource(); jedis.select(1); String result = jedis.get("welcome"); System.out.println(result); //关闭连接 jedis.close(); //关闭连接池 jedisPool.close(); }
相关文章推荐
- Redis 学习之持久化机制、发布订阅、虚拟内存
- ASP.NET MVC4 Redis 学习笔记
- redis 学习的一些笔记
- Redis学习笔记五:redis主从复制
- Redis学习手册(目录)
- Redis学习(管线)
- redis学习笔记4,hash类型
- Redis学习笔记(1)- CentOS 6.4 安装Redis
- Clojure 学习入门(9)- 连接redis
- Redis源码学习3-基本数据结构之双向链表
- Redis学习手册(Hashes数据类型)
- redis学习之一基本命令
- OpenFire源码学习之二十:在openfire中使用redis插件(下)
- redis学习(六)redis管道
- [Todo] Redis相关学习
- Redis设计与实现学习笔记(一)
- 07-redis学习第七章
- 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)
- Redis的学习—jedis使用_(三)
- redis学习文章