Redis与java编程结合-快速入门
一、Redis简介
Nosql 基本概念
为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。
NoSql,叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。
Redis基本概念
Redis是使用c语言开发的一个高性能键值数据库。Redis可以通过一些键值类型来存储数据。 键值类型: String字符类型 map散列类型 list列表类型 set集合类型 sortedset有序集合类型。
二、Redis 数据结构
1、String
这是最简单的Redis类型。如果只使用这种类型,Redis就像一个可持久化的Memcached服务器。
2、List
Redis的List是基于双向链表实现的,可以支持反向查找和遍历。
常用案例:聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、新闻的分页列表、博客的评论系统。
3、Hash
Hash是一个String类型的field和value之间的映射表,请见下图,类似于.NET中的Hashtable和Dictionary。主要用来存储对象,可以避免序列化的开销和并发修改控制的问题。
4、Set
Set也是一个列表,不过它的特殊之处在于它是可以自动排重的:当需要存储一个列表数据,而又不希望出现重复的时候,Set是一个很好的选择(比如ID的集合)。并且Set提供了判断某个成员是否在一个Set集合内的接口,这也是List所没有的。
5、Sorted Set
Sorted Set和Set的使用场景类似,区别是Sorted Set会根据提供的score参数来进行自动排序。当你需要一个有序的并且不重复的集合列表,那么就可以选择Sorted Set数据结构。常用案例:游戏中的排行榜。
应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用) 分布式集群架构中的session分离。 聊天室的在线好友列表。 任务队列。(秒杀、抢购、12306等等) 应用排行榜。 网站访问统计。 数据过期处理(可以精确到毫秒)
三、客户端运用
1.下载
官方下载地址:https://redis.io/download
但是Redis项目不正式支持Windows。不过,Microsoft开放技术小组开发和维护这个Windows端口针对Win64
Windows下载地址(微软的GitHub地址) https://github.com/MSOpenTech/redis/releases
下载完成解压
2、启动服务
打开一个 cmd 窗口 使用cd命令切换目录到 F:\DevelopTools\Redis-x64-3.2.100(你的解压目录)运行 redis-server.exe redis.windows.conf
可能遇到问题
[13576] 17 Apr 12:07:16.512 # QForkMasterInit: system error caught. error code=0x000005af, message=VirtualAllocEx
failed.: unknown error
解决方法
在redis的配置文件(我的是windows版本的)中加入maxmemory和maxheap配置(单位为字节)
再次启动,成功!记得一定要加上配置文件
redis-server.exe redis.windows.conf
3.启动客户端
四、在java环境下运行
jedis 客户端
介绍
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。
在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,下面我们就重点学习下Jedis。
Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis
工程搭建
添加 jar:commons-pool2-2.3.jar jedis-2.7.0.jar
推荐阅读
-
Redis与java编程结合-快速入门
-
PHP快速入门java系列:Mac OS下Maven的安装与配置(二)
-
Java开发者结合Node.js编程入门教程
-
Java开发者结合Node.js编程入门教程
-
Java编程反射机制用法入门与实例总结
-
Java编程反射机制用法入门与实例总结
-
开发zeroc ice应用入门(java开发ice应用,python开发ice应用,java与python结合开发ice服务)
-
开发zeroc ice应用入门(java开发ice应用,python开发ice应用,java与python结合开发ice服务)
-
Spark Core快速入门系列(2) | Spark Core中编程模型的理解与RDD的创建
-
快速入门系列MVC07与HTML5移动开发的结合_html/css_WEB-ITnose