Java中Redis入门(1)
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案。
Redis官方网网站是:http://www.redis.io/,如下:

Redis 有三个主要使其有别于其它很多竞争对手的特点:
Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的;
Redis相比许多键值数据存储系统有相对丰富的数据类型;
Redis可以将数据复制到任意数量的从服务器中;
Redis优点
异常快速 : Redis是非常快的,每秒可以执行大约110000设置操作,81000个/每秒的读取操作。
支持丰富的数据类型 : Redis支持最大多数开发人员已经知道如列表,集合,可排序集合,哈希等数据类型。
这使得在应用中很容易解决的各种问题,因为我们知道哪些问题处理使用哪种数据类型更好解决。
操作都是原子的 : 所有 Redis 的操作都是原子,从而确保当两个客户同时访问 Redis 服务器得到的是更新后的值(最新值)。
MultiUtility工具:Redis是一个多功能实用工具,可以在很多如:缓存,消息传递队列中使用(Redis原生支持发布/订阅),在应用程序中,如:Web应用程序会话,网站页面点击数等任何短暂的数据;
要在windows中安装redis:
- 在官网中下载redis压缩包
- 执行cmd命令找到redis的存放目录,启动服务器端,如图:

然后在客户端也可以直接通过cmd命令连接,如图:

该图是连接本地redis并且向其中set类似于map集合《“myKey”,“test”》。然后通过get方法获取。
上面做了redis的介绍以及安装启动服务器以及连接之后,接下来主要讲解一下在Java中如何使用,这也是现在越来越流行的一项技术:
首先在java中使用Redis,需要引入Redis驱动,就是jedis-2.1.0.jar,而这个jar包又依赖于commons-pool-1.6.jar以及tomcat-redis-session-manager-1.2-tomcat-7.jar,所以我们至少需要这个三个jar包。
第二步便是上面说的启动本地redis服务器。
然后在Java中通过驱动连接本地redis,如下:
Jedis jedis = new Jedis("localhost");
同时为了测试连接成功可以向上图命令中那样插入keyvlaue值,如: jedis.set("myKey", "成功");然后控制台输出获取值:
System.out.println("Redis key value :"+jedis.get("myKey"));
到这简单redis在Java中就可以使用了,如需了解更多功能,可查看中文apihttp://www.360doc.com/content/15/0328/12/5054188_458684113.shtml
ps:redis存在的好处就在于无需频繁的访问数据库,当一些数据不会发生变化时可以直接添加到redis中,比如聊天一些历史记录等,类似于缓存,这样大大的提高了性能,笔者建议在使用redis最好结合着数据库一起使用。下面复制一段代码是笔者写的一段结合redis和数据库登陆的小测试功能中的一段代码:
int user_id = 2;//用户id String user_name;//用户名 if(jedis.hexists("user"+user_id, "user_name")){//判断jedis中是否存在"user"+user_id哈希表并且value值为user_name user_name =jedis.hget("user"+user_id, "user_name");//如果存在直接获取然后登陆 System.out.println("欢迎来到Redis登陆: "+user_name); }else{//如果不存在,则需要查询数据库判断用户名密码是否正确,如果存在则登陆,并且将其信息保存至redis String sql = "select user_name from user_t where id = "+user_id+""; try { ResultSet rs =conn.createStatement.executeQuery(sql); if(rs.next){ jedis.hset("user"+user_id, "user_name", rs.getString("user_name"));//保存至redis中 System.out.println("欢迎来到MySql登陆: "+rs.getString("user_name")); }else{ System.out.println("欢迎 注册"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace; }
到这里一个算是完整的redis简单入门就介绍完了。
Java中Redis入门(1)的更多相关文章
- Java中Redis简单入门
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...
- java中多线程入门有趣介绍
我们在网上可以看到所有有关于java的线程的基本概念的很多解释,不乏有很多详细经典的解释和代码解说.但是我们的很多初学者看完不能有一个直观的印象,特别是一些没有编程基础的学习者,很多时候要花很多时间去 ...
- Java中Redis的简单入门
1.下载redis服务器端程序: 在redis.io官网完成服务器端程序下载:可下载安装版或解压版,此处我下载的是解压版,下载完成后解压. 2.配置redis密码,开启redis服务端 在redis. ...
- java中redis的分布式锁工具类
使用方式 try { if(PublicLock.getLock(lockKey)){ //这里写代码逻辑,执行完后需要释放锁 PublicLock.freeLock(lockKey); } } ca ...
- FreeMarker在JAVA中应用入门
在项目中通常有生成XML文件发送到另一个系统的需求,简单的办法可以是用一个XML模板,通过Freemarker替换其中的'Mark'(${}),生成最终的XML文件. 下面记录了一下简单的示例步骤: ...
- Java中Redis缓存
1:安装 安装可分为单机版redis 和集群版redis 安装比较简单,自行百度即可 2:集成 pom文件中加入jedis 依赖,spring创建redis的application-resid配置, ...
- Redis入门教程(三)— Java中操作Redis
在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...
- redis入门指南书中概要
一.简介 1.redis是一个开源的.高性能的.基于键值对的缓存和存储系统,通过提供多种键值数据类型适应不同场景下的缓存和存储需求,同时redis高级功能能胜任消息队列.任务队列等不同角色. 2.内存 ...
随机推荐
- Tensorflow官方文档中文版——第一章
第一示例: import tensorflow as tf import numpy as np x_data=np.float32(np.random.rand(,))#随机输入 y_data=np ...
- 从 零开始 无差错 装好nginx+PHP
由于这两天 一直有人追问 nginx为何报错,为何php没装好啥的,大多原因是 : 1.编译与yum混合安装,导致很多包的路径不对,进而报错 2.yum源比较旧,导致 与新版本的php不匹配 3.安装 ...
- 图片oom问题
1.什么是OOM? 程序申请内存过大,虚拟机无法满足我们,然后自杀了.这个现象通常出现在大图片的APP开发,或者需要用到很多图片的时候.通俗来讲就是我们的APP需要申请一块内存来存放图片的时候,系统认 ...
- vue页面性能优化方案
个人在项目中用到的页面性能优化的方式总结. 一.均衡页面加载文件的大小和数量 1.项目中小图片图片转base64,通过工具如webpack进行图片压缩,文件进行压缩混淆等 2.vue-router 懒 ...
- Filebeat 导入 Elasticsearch 的方法
Filebeat 导入 Elastaticsearch 的方法 1. 什么是Filebeat?到底是干什么的? Filebeat说实话,就是一个日志监控分发器,类似tail -f这样去监控某个日志,或 ...
- Python 3 并发编程多进程之进程同步(锁)
Python 3 并发编程多进程之进程同步(锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,竞争带来的结果就是错乱,如何控制,就是加锁处理. 1. ...
- Shell中的 >/dev/null 2>&1
默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: 1 ...
- 【Java】-BigInteger大数类的使用【超强Java大数模板 总结】
Scanner cin = new Scanner(new BufferedInputStream(System.in)); 这样定义Scanner类的对象读入数据可能会快一些! 参考这个博客继续补充 ...
- poj3984《迷宫问题》暑假集训-搜索进阶
K - 迷宫问题 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65536KB 64bit ...
- Spring源码解析-核心类之XmlBeanDefinitionReader
XmlBeanDefinitionReader XML配置文件的读取是 Spring 中重要的功能,因为 Spring 的大部分功能都是以配置作为切入点的,那么我们可以从 XmlBeanDefinit ...