java操作redis的操作_Java操作redis简单示例

第一:安装Redis

首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境。

Redis的下载可以百度一下,或者打开下面的下载链接:

https://github.com/MSOpenTech/redis

也可以从我的百度网盘下载,下载链接:

http://pan.baidu.com/s/1pJmaZ71

Redis有Linux版本的也有Windows版本的,我们练习的话一般都是Win版,操作比较简单。下载之后,压缩文件里面有Win 32位的和Win 64位的两个版本,自己根据个人系统进行选择。

第二:解压文件,运行Redis服务

148558bbd63340187348588d856e497e.png

53c10e2cd3cfbb6186a76b65e576921c.png

先说一下Redis解压之后我们看到的几个文件的作用:

redis-benchmark.exe:性能测试工具,可以用以模拟同时由N个客户端发送M个 SETS/GETS 查询 (有点像于 Apache 的ab 压力工具).

redis-check-aof.exe:更新日志检查工具

redis-check-dump.exe:本地数据库检查工具

redis-cli.exe:客户端工具

redis-server.exe:服务端工具

redis.conf: Redis的配置文件

其中,红色加粗的是我们经常用到的。

第三:启动Redis服务

两种启动方式:

① 进入到Redis所在目录,按住shift,右击,“在此处打开命令窗口”或者打开cmd,自己cd进去,不过这样比较麻烦

a777ec268b56a47dfa4220173c341261.png

输入: redis-server.exe

8af72894061b1bac3bc97dc2486782c6.png

这样的话我们的Redis服务就启动了,注意,不要关闭cmd窗口

另外,我们在启动Redis的时候可以给它指定参数文件,格式如下:

redis-server.exe 配置文件路径

例如:

redi-server.exe redis.conf

② 通过配置环境变量直接运行

具体的配置方法如下:

e39827a2d399e6810a2b9c97901977f8.png

6d4cdbd8c16b1f5bc59458480a5cabbb.png

在“变量值”一栏写入你的Redis安装目录即可。配置好环境变量之后只要打开cmd,直接输入redis-server.exe就可以启动服务,就行不用cd的redis的安装目录执行了。

第四:编写java测试代码

①新建java项目

②导入redis包

Redis的jar包下载链接:

jedis-2.1.0.jar http://pan.baidu.com/s/1mgxCyvu

commons-pool-1.5.5.jar  http://pan.baidu.com/s/1gdGd0Sb

③编写代码

1 packagecom.gf.redisdemo_2;2

3 importjava.text.SimpleDateFormat;4 importjava.util.ArrayList;5 importjava.util.Date;6 importjava.util.Iterator;7 importjava.util.List;8 importjava.util.Set;9

10 importredis.clients.jedis.Jedis;11 importredis.clients.jedis.JedisPool;12 importredis.clients.jedis.JedisPoolConfig;13 importredis.clients.jedis.JedisShardInfo;14 importredis.clients.jedis.ShardedJedis;15 importredis.clients.jedis.ShardedJedisPool;16

17 public classTestRedis {18

19 //声明

20 private Jedis jedis;//非切片额客户端连接

21 private ShardedJedis shardedJedis;//切片额客户端连接

22 private JedisPool jedisPool;//非切片连接池

23 private ShardedJedisPool shardedJedisPool;//切片连接池24

25 //构造

26 publicTestRedis() {27 initJedisPool();28 initSharededJedisPool();29 jedis=jedisPool.getResource();30 shardedJedis=shardedJedisPool.getResource();31 }32

33 //初始化SharededJedisPool

34 private voidinitSharededJedisPool() {35 //配置参数

36 JedisPoolConfig config=newJedisPoolConfig();37 config.setMaxActive(50);38 config.setMaxIdle(5);39 config.setMaxWait(2000l);40 config.setTestOnBorrow(true);41 JedisShardInfo jedisShardInfo=new JedisShardInfo("127.0.0.1", 6379);//地址,端口

42 List list=new ArrayList();43 list.add(jedisShardInfo);44 shardedJedisPool=newShardedJedisPool(config, list);45 }46

47 //初始化JedisPool

48 private voidinitJedisPool() {49 JedisPoolConfig config=newJedisPoolConfig();50 config.setMaxActive(50);51 config.setMaxIdle(5);52 config.setMaxWait(2000l);53 config.setTestOnBorrow(true);54 //此处配置与初始化SharededJedisPool用到的代码一样

55 jedisPool=new JedisPool(config, "127.0.0.1", 6379);56 }57

58 public voidshowInfo() {59 Date date=newDate();60 SimpleDateFormat sdf=new SimpleDateFormat("YYYY年MM月dd日 hh:mm:ss");61

62 System.out.println(">>>>>>>清空数据库:"+sdf.format(date));63 System.out.println(jedis.flushDB());64 System.out.println(">>>>>>>set:"+sdf.format(date));65 System.out.println(shardedJedis.set("name", "zhangsan"));66 System.out.println(">>>>>>>get:"+sdf.format(date));67 System.out.println(shardedJedis.get("name"));68

69 System.out.println(">>>>>>获取所有的键值:"+sdf.format(date));70 Set set=jedis.keys("*");71 Iterator iterator=set.iterator();72 while(iterator.hasNext()) {73 String key=iterator.next();74 System.out.println(key+",值:"+shardedJedis.get(key));75 }76 }77

78 public static voidmain(String[] args) {79 newTestRedis().showInfo();80 }81

82 }

可能刚开的时候对Jedis、ShardedJedis、JedisPool、SharededJedisPool的初始化顺序理不清,容易混乱,为此我们声明的时候就按照一定的规律去声明:

Jedis---ShardedJedis        JedisPool----ShardJedisPool。

初始化图如下:

b44e09ef66f082c379a4721638eed6fb.png

根据图示可以看出,我们要初始化Jedis、ShardedJedis就要先创建SharedJedis和ShardedJedisPool,于是有了initJedisPool()和initSharededJedisPool()方法

说明:如果你在启动Redis时使用了配置文件,并且在配置文件里面开启了登陆密码(查找redis.conf的“requirepass 密码”,把注释解掉),如果直接运行以上代码会看到一下错误信息:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

myeclipse启动报JVM terminated. Exit code=1

报错信息如图: 解决办法: 删除当前workspaces下文件夹,路径为:%Workspaces%/.metadata/.plugins/org.eclipse.core.runtime转载于:https://www.cnblogs.com/tancp/p/4102866.html

Java 常用类库

文章目录1. String、StringBuffer2. 基本数据类3. System 类4. Runtime 类5. Date、Calendar、DateFormat 类6. Math、Random 类7. hashCode() 方法8. 对象克隆1. String、StringBuffer public class testString {public static void main(String [] args){String s "Mi…

git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用

优质文章,第一时间送达!来源:机器之心git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章…

传智播客java测试题_传智播客Java基础综合测试题

传智播客Java基础综合测试题传智播客Java基础综合测试题第一关1.动手完成 Java 开发包的安装,并设置环境变量 Path 。2.编写一个程序,要求程序运行后在屏幕上输出:***************************This is my first java program!***************…

为何Spark更高效?

learn from 从0开始学大数据(极客时间) Spark 的计算阶段 Hadoop MapReduce 简单粗暴地根据 shuffle 将大数据计算分成 Map 和 Reduce 两个阶段,然后就算完事了。 而 Spark 更细腻一点,将前一个的 Reduce 和后一个的 Map 连接起来…

iphone个系列尺寸_最值得入手的4款iPhone,都是内行人的最爱,拿出去有面子

现如今手机市场里最受大众欢迎的手机应该就是iPhone了,虽然iPhone的价格都普遍偏高,但是大家依然还是非常青睐于它,主要是因为iPhone的配置和性能确实是比其他机型要好,搭载的A系列仿生芯片和iOS系统都提升了它的性能,…

protocol(协议) 和 delegate(委托)也叫(代理)---辨析

protocol和delegate完全不是一回事。协议(protocol),(名词)要求。就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。委托(delegate),(动词)助手。顾名思义就是委托…

天池 在线编程 能否转换

文章目录1. 题目2. 解题1. 题目 给两个字符串 S 和 T, 判断 S 能不能通过删除一些字母(包括0个)变成 T. 样例1 输入: S "lintcode" 和 T "lint" 输出: true样例2 输入: S "lintcode" 和 T "ide" 输出: true样例3 输入: S "…

java 析构函数_C++与Java的区别(一)

一,前言网上经常看到编程语言之争,大伙儿皈依到不同门派,各自怀抱信仰,时不时还发生点儿“冲突”。这其中,C和Java的优劣,十多年前就常吵的火热。然而时代在进步,技术在发展,满街早已…

天池 在线编程 圣杯咒语

文章目录1. 题目2. 解题1. 题目 一段英文中同时出现大小写的字母中最大的那一个,现在给你一段英文,你能把这个字母找出来嘛? ps:一定存在答案 英文长度不会超过100000 样例 1: 输入:"aAbb" 输出&#xf…

crawler_java_数据平台结构

大数据生态架构 转载于:https://www.cnblogs.com/cphmvp/p/4105674.html

天池 在线编程 卡牌游戏(01背包)

文章目录1. 题目2. 解题1. 题目 你跟你的朋友在玩一个卡牌游戏,总共有 n 张牌。 每张牌的成本为 cost[i] 并且可以对对手造成 damage[i] 的伤害。 你总共有 totalMoney 元并且需要造成至少 totalDamage 的伤害才能获胜。 每张牌只能使用一次,判断你是否…

bean validation校验方法参数_Spring Boot 之使用 validation 验证参数

前言文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群,群聊号码:54968483…

LeetCode 891. 子序列宽度之和(数学)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A ,考虑 A 的所有非空子序列。 对于任意序列 S ,设 S 的宽度是 S 的最大元素和最小元素的差。 返回 A 的所有子序列的宽度之和。 由于答案可能非常大,请返回答案模 10^97。 示例&#x…

hive建表语句_Hive数据如何同步到MaxCompute之实践讲解

摘要:本次分享主要介绍 Hive数据如何迁移到MaxCompute。MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,本文将为大家介绍MMA工具的功能、技术架构和实现原理,再通过实际操作MMA,演示将Hive数据迁移到MaxCompute。…

Java 包及访问权限

文章目录1. package 包2. import3. JDK常见的包4. 访问权限5. jar 压缩1. package 包 作用:防止不同的人写的类的名称相同冲突了, package testPackage1.java; class testPg {public String talk(){return "talk()";} } class testAnother{p…

java phaser用法_第3章Phaser的使用-(java并发编程核心方法与框架)

3.1 Phaser的使用3.2 类Phaser的arriveAndAwaitAdvance()方法测试13.3 类Phaser的arriveAndAwaitAdvance()方法测试23.4 类Phaser的arriveAndDeregister()方法测试3.5 类Phaser的getPhase()和onAdvance()方法测试3.6 类Phaser的getRegisteredParties()方法和register()测试3.7 …

html选项卡_适用于Mac的最佳HTML文本编辑器,编码开发必备

一个好的文本编辑器对于想要建立网站或进行编码的任何人都是必不可少的。这对于习惯于面面俱到的环境的Mac开发人员而言更加明显。对于他们来说存在一系列不同的优质软件之选。今天小编将介绍几款Mac上好用的HTML文本编辑器,对于每一款文本编辑器,小编将…

java 判断请求为 ajax请求_Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求...

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求java 判断请求是不是ajax请求,Java判断是否为ajax请求>>>>>>>>>>>>>>>>>>>>>>>>>>>>&…

java set hashcode_Java学习笔记_180724_HashSet_hashCode()

HashSet泛型E必须重写hashCode方法,否则会导致add结果与预期不符如class NewClass{String s;public NewClass(String s){this.ss;}overridepublic int hashCode(){//此处返回字符串s的hashCode()return s.hashCode();}}NewClass n new NewClass("1");New…