Java中Redis简单入门
Redis 是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案。
Redis 官方网网站是:http://www.redis.io/,如下:
-
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,如下:
1
Jedis jedis =
new
Jedis(
"localhost"
);
- 同时为了测试连接成功可以向上图命令中那样插入 keyvlaue 值,如: jedis.set("myKey", "成功"); 然后控制台输出获取值:
1
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 和数据库登陆的小测试功能中的一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 简单入门就介绍完了。欢迎互相学习。