Redis学习-redis概述
最近刚刚接触了redis技术,对此有一些了解,这是简单做一点总结。
Redis简介
首先,简单了解一下NoSQL(Not only sql),不要错误的理解为:没有SQL,而是不仅仅是SQL。NoSQL工具也是一种简易的数据库,它主要是基于内存的数据库,并提供一定的持久化功能。现在有很多这种技术如:memcachedb,redis,MongoDB等等。
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis的性能十分优越,可以支持每秒十几万的读/写操作,其性能超数据库,并且支持集群、分布式、主从同步等配置,还支持一定事务能力。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
redis的性能优越主要来自3个方面:
- 基于ANSI C语言编写的,接近于汇编语言的机器语言,运行十分快速。
- 基于内存的读/写,速度自然比数据库的磁盘读/写要快。
- 它的数据结构只有6种数据类型,数据结构比较简单,因此规则较少,而数据库则是范式,完整性、规范性需要考虑的规则较多,处理业务会比较复杂。
Redis在javaweb中的应用
一般,在javaweb中应用redis存在两个场景,一个是缓存常用的数据;另一个是在需要高速读/写的场合使用它快速读/写,比如一些需要进行商品抢购和抢红包的场合。
在使用Redis存储的时候,需要从3个方面进行考虑:
- 业务数据常用吗?命中率如何?如果命中率低,就没有必要写入缓存。
- 该业务数据是读操作多还是写操作多,如果写操作多,频繁需要写入数据库,也没有必要使用缓存。
- 业务数据大小如何?如果要存储几百兆字节的文件,会给缓存带来很大的压力,有没有必要?
考虑这些问题后,如需要缓存,就可以使用了。
Redis的安装和使用
我的电脑是windows系统的,所以主要以此为主,其它系统的安装就没有介绍。
下载地址:redis
也可以到Redis的官网下载。
下载下来是一个压缩包,解压后的目录如下:

方便启动在目录下新建一个startup.cmd,用编辑工具打开,写入以下内容:redis-server redis.windows.conf
就是通过命令来读取redis-window.conf的内容,用来启动redis,双击启动,出现下图就说明启动成功了。

在文件夹下还有一个redis-cli.exe,它一个Redis自带的客户端工具,可以连接到redis服务器,如图:

这样就安装好了redis。
安装好了,我们通过代码来测试一下redis的性能,要想使用redis,需要下载jedis.jar包。
下面是测试代码:(代码来自书上例子)
package com.mz.redis;
import redis.clients.jedis.Jedis;
/**
* @Package com.mz.redis
* @Description: redis测试
* @auther MZ
* @create 2017/10/10 22:14
*/
public class RedisTest {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost",6379);
int i = 0;
try {
long start = System.currentTimeMillis();
while (true) {
long end = System.currentTimeMillis();
if (end - start >= 1000) {
break;
}
i++;
jedis.set("test" + i, i + "");
}
} finally {
jedis.close();
}
System.out.println("redis每秒操作:"+i+"次");
}
}
结果如图:

书上作者的性能可以达到2万多次,而我的只有几千次,每次运行结果都不一样。可以是我的电脑太老了,没能体现redis真正的性能。
Redis学习-redis概述的更多相关文章
- Redis学习——Redis持久化之AOF备份方式保存数据
新技术的出现一定是在老技术的基础之上,并且完善了老技术的某一些不足的地方,新技术和老技术就如同JAVA中的继承关系.子类(新技术)比父类(老技术)更加的强大! 在前面介绍了Redis学习--Redis ...
- Redis学习---Redis操作之Python连接
PyCharm下的Redis连接 连接方式: 1. 操作模式 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使 ...
- Redis学习——Redis事务
Redis和传统的关系型数据库一样,因为具有持久化的功能,所以也有事务的功能! 有关事务相关的概念和介绍,这里就不做介绍. 在学习Redis的事务之前,首先抛出一个面试的问题. 面试官:请问Redis ...
- Redis学习——Redis持久化之RDB备份方式保存数据
从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能. 下面就介绍Redis的持久化之RDB! 一:什么是redis的 ...
- [转]Redis学习---Redis高可用技术解决方案总结
[原文]https://www.toutiao.com/i6591646189714670093/ 本文主要针对Redis常见的几种使用方式及其优缺点展开分析. 一.常见使用方式 Redis的几种常见 ...
- Redis学习——redis.conf 配置文件介绍
学以致用 学在用前 参看文章: redis.conf 配置详解 Redis配置文件详解(redis.conf)-云栖社区 在Redis的使用过程,除了知道对Redis五种数据类型的操作方法之外,最主要 ...
- redis学习——redis应用场景
毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象 ...
- Redis学习--Redis数据类型
Redis的5种基本类型 1.String 2.Hash 3.List 4.Set 5.Sorted Set String常见用法 1.get key 返回value 2.set key value ...
- Redis学习--Redis的安装与Jedis的简单使用
Redis安装 关于软件安装,之前是通过记录视频,前段时间发现可以直接阅读官网进行安装,这步省略 启动:前端启动直接启动src目录下redis-server,后端启动修改redis.conf中daem ...
- Redis学习---Redis的免密操作
Redis的免密操作 问题解决[方式一]:当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效 1.首先进入redis,如果没有开启redis则需要先开启: [r ...
随机推荐
- 日志分割工具——cronolog
使用cronolog可以格式化日志文件的格式,比如按时间分割,易于管理和分析. 1.下载软件 http://cronolog.org/download/index.html 用法见 lighttpd配 ...
- Linux 查询命令
which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 (find也 ...
- opencv查找轮廓---cvFindContours && cvDrawCountours 用法及例子
http://blog.csdn.net/timidsmile/article/details/8519751 环境: vs2008 + opencv2.1 先看,这两个函数的用法(参考 opencv ...
- oracle、mysql、db2三大数据库分页方法的整理
最近项目中经常会涉及到代码中支持三种数据库的分页的功能,自己整理了关于三种数据库的分页的写法,分享给大家,以供大家使用.希望能帮到更多的码友! 先来看一个代码片段: String page = ala ...
- 图像处理之直方图均衡化及C源码实现
1 直方图均衡化(Histogram Equalization)简介 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法.直方图拉伸和直方图均衡化是两种最常见的间接 ...
- Codeforces 395 D.Pair of Numbers
D. Pair of Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- mysql ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)错误解决办法
我的电脑是win10,所用的是mysql5.7.14 近期在学习mysql数据库的时候,遇到了这个错误,我的密码错误了.突如其来的问题,很是蒙蔽,因为我没对数据库设置过密码.通过网上查询,可以通过进入 ...
- Redis 为什么用跳表而不用平衡树
Redis 为什么用跳表而不用平衡树? 本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skiplist展开讨论. Redis里面使用s ...
- 不管谁坐了CIO的位置 都必须了解的法则
目前一些设立了CIO岗位的央企中,CIO也只做到了“IO”(信息官,Information Officer),而没有做到“C”(首席,Chief).老总们总在抱怨没有合适的人选:懂技术的不懂业务,懂业 ...
- Unsupervised learning, attention, and other mysteries
Unsupervised learning, attention, and other mysteries Get notified when our free report “Future of M ...