欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis与java编程结合-快速入门

程序员文章站 2024-03-25 20:26:28
...

一、Redis简介   

  Nosql 基本概念

为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。

NoSql,叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。

 Redis基本概念

Redis是使用c语言开发的一个高性能键值数据库。Redis可以通过一些键值类型来存储数据。 键值类型: String字符类型 map散列类型 list列表类型 set集合类型 sortedset有序集合类型。

二、Redis 数据结构

Redis与java编程结合-快速入门

1、String

这是最简单的Redis类型。如果只使用这种类型,Redis就像一个可持久化的Memcached服务器。


2、List

Redis的List是基于双向链表实现的,可以支持反向查找和遍历。

常用案例:聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、新闻的分页列表、博客的评论系统。
3、Hash

Hash是一个String类型的field和value之间的映射表,请见下图,类似于.NET中的Hashtable和Dictionary。主要用来存储对象,可以避免序列化的开销和并发修改控制的问题。

Redis与java编程结合-快速入门

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

    下载完成解压
Redis与java编程结合-快速入门

 

2、启动服务

打开一个 cmd 窗口 使用cd命令切换目录到 F:\DevelopTools\Redis-x64-3.2.100(你的解压目录)运行 redis-server.exe redis.windows.conf 

Redis与java编程结合-快速入门

可能遇到问题

[13576] 17 Apr 12:07:16.512 # QForkMasterInit: system error caught. error code=0x000005af, message=VirtualAllocEx 
failed.: unknown error

解决方法

在redis的配置文件(我的是windows版本的)中加入maxmemory和maxheap配置(单位为字节)

Redis与java编程结合-快速入门

再次启动,成功!记得一定要加上配置文件

redis-server.exe redis.windows.conf 

3.启动客户端

Redis与java编程结合-快速入门

四、在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