java redis缓存使用_java使用redis缓存数据库
开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,maven配置如下
redis.clients
jedis
2.9.0
Redis 安装
Window 下安装
下载地址:https://github.com/MSOpenTech/redis/releases。
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf 。
如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
设置键值对 set myKey abc
取出键值对 get myKey
编写java代码测试一下
package com.xx.web.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class RedisTest {
private static Jedis jedis;
static {
//连接服务器
jedis = new Jedis("127.0.0.1",6379);
//权限认证
//jedis.auth("");
}
//字符串操作
@Test
public void testString(){
jedis.set("name", "程健");
System.out.println(jedis.get("name"));
//追加操作
jedis.append("name", "是我的名字");
System.out.println(jedis.get("name"));
//删除键
Long result = jedis.del("name2");
System.out.println(result);//返回long型, 1表示成功 0表示失败
//设置多个键值对
jedis.mset("age","23","addr","湖北");
System.out.println(jedis.mget("name","age","addr"));
System.out.println(jedis.get("age"));
}
//哈希操作
@Test
public void testHash(){
Mapmap = new HashMap();
map.put("name", "陈敏");
map.put("age", "20");
//存数据
jedis.hmset("user", map);
//读取数据 返回一个列表类型
Lista = jedis.hmget("user", "name","age");
System.out.println(a);
System.out.println(jedis.hmget("user", "name","age") );
//hkeys key 获取所有哈希表中的字段 返回一个列表[name,age]
System.out.println(jedis.hkeys("user"));
//hvals key 获取哈希表中所有值
System.out.println(jedis.hvals("user"));
//hlen key 获取哈希表中字段的数量
System.out.println(jedis.hlen("user"));
//获取所有的键 迭代操作
Iteratoriter = jedis.hkeys("user").iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key+"--"+jedis.hmget("user", key));
}
}
//List操作
@Test
public void testList() {
//开始前,先移除所有的内容
jedis.del("Programming language");
//LPUSH key value1 [value2] 将一个或多个值插入到列表头部
jedis.lpush("Programming language", "Java");
jedis.lpush("Programming language", "Python");
jedis.lpush("Programming language", "C++");
//获取数据 返回一个list [Python, Java]
//第一个是key,第二个是起始位置,第三个是结束位置
//其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。
//你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
System.out.println( jedis.lrange("Programming language", 0, -1) );
//LPUSHX key value 将一个值插入到已存在的列表头部
jedis.lpushx("Programming language", "php");
System.out.println( jedis.lrange("Programming language", 0, -1) );
//RPUSH key value1 [value2] 在列表中添加一个或多个值
jedis.rpush("Programming language", "C");
System.out.println( jedis.lrange("Programming language", 0, -1) );
//输出情况
// [C++, Python, Java]
// [php, C++, Python, Java]
// [php, C++, Python, Java, C]
}
//Set操作
@Test
public void testSet() {
//向集合添加一个或多个成员
jedis.sadd("webSite", "阿里巴巴","网易");
jedis.sadd("webSite", "腾讯");
//SCARD key 获取集合的成员数
System.out.println( jedis.scard("webSite") );
//SMEMBERS key 返回集合中的所有成员 返回类型列表[阿里巴巴, 腾讯, 网易]注意顺序不唯一
System.out.println( jedis.smembers("webSite") );
//SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素
System.out.println(jedis.sscan("webSite", "0") );
}
//sorted set有序Set
@Test
public void testSortSet() {
// Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
// 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
// 有序集合的成员是唯一的,但分数(score)却可以重复。
jedis.zadd("city", 0, "北京");
jedis.zadd("city", 1, "上海");
jedis.zadd("city", 1, "上海2");
jedis.zadd("city", 2, "杭州");
//ZCARD key 获取有序集合的成员数
System.out.println( jedis.zcard("city") );
//ZREVRANK key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 java中的方法是zrevrangeByScore
//2指的是最大的分数
Seta = jedis.zrevrangeByScore("city", 2, 0);
System.out.println( a );
}
}
java redis缓存使用_java使用redis缓存数据库相关推荐
- java redis缓存清除_java基础-redis缓存篇
Redis的数据类型 Redis总共支持5种数据类型,分别是: 类型 说明,命令 String set ,get Hash HMSET myhash field1 "Hello" ...
- java操作redis的操作_Java操作redis简单示例
第一:安装Redis 首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境. Redis的下载可以百度一下,或者打开下面的下载链接: https://github.c ...
- java redis缓存清除_JAVA中redis增删查以及清理缓存
Controller @ApiOperation(value = "获取信息放入Redis中") @RequestMapping(value = "/getPropert ...
- java 缓存一致性_Java多线程——CPU缓存原理和缓存一致性问题
说起Java中的多线程,就不得不说volatile关键词volatile关键词执行修饰变量和实例变量,不能修饰方法参数,局部变量和实例常量. volatile是Java提供的一种轻量级的同步机制,在并 ...
- java map 缓存数据_java使用hashMap缓存保存数据的方法
本文实例讲述了java使用hashMap缓存保存数据的方法.分享给大家供大家参考,具体如下: private static final HashMap sCache = new HashMap(); ...
- java mysql 分布式锁_Java分布式锁之数据库方式实现
之前的文章<Java分布式锁实现>中列举了分布式锁的3种实现方式,分别是基于数据库实现,基于缓存实现和基于zookeeper实现.三种实现方式各有可取之处,本篇文章就详细讲解一下Java分 ...
- java oracle数据备份_Java备份还原Oracle数据库
Java备份还原Oracle数据库,不知道还有没好点的方法 希望有的也能提供下方法或者代码. Java备份还原Oracle数据库,,不知道还有没好点的方法 希望有的也能提供下方法或者代码. packa ...
- java access dbq 参数_Java怎么连接access数据库,要求讲解详细一些
import java.sql.*; public class ConnectAccess { /** * 初学者请注意: * 1:先建立一个access文件a1.mdb,并放在D:/下; * 2:在 ...
- java操作oracle数据_Java jdbc操作oracle数据库的两种方式
本文由广州疯狂软件java培训分享: 第一种应该是比较古老的方法了. Windows下采用JDBC-ODBC Bridge连接oracle数据库 1. 安装oracle客户端程序,在tnsnames. ...
最新文章
- 面试官 | 写if 时不带 else,你的代码会更好!
- Pytorch固定随机性
- Xilinx ISE 调用 ModelSim SE 库编译
- 【待继续研究】除了专家模型,这两大模型也被普遍应用于信用评估
- 基于 KubeVela 的 GitOps 交付
- BZOJ 4422 Cow Confinement (线段树、DP、扫描线、差分)
- Oracle原理:11g的体系结构
- 聊一聊ThreadLocal
- 科普:Windows下Netcat使用手册
- Java Servlet response
- 软件框架的理解(转载)
- 3.5英寸万转硬盘的末路(万转“偏瘫”记连载二)
- java日期互转:LocalDateTime、String、Instant、Date
- ]Vi/Vim查找替换使用方法
- 专利附图绘制-VISIO线条图绘制入门
- 总结tomcat优化方法
- pandas训练集测试集划分_用pandas划分数据集实现训练集和测试集
- 佐罗一键新机数据导出导入文件夹
- VmodCAM图像采集 VGA显示
- 转一个校友的文章--“在计算机领域做研究的一些想法”
热门文章
- 解决selenium连接driver报错Message: Can not connect to the Service chromedrive
- docker删除mongo数据库库_Docker 搭建MongoDB环境
- linux配置sftp-server,Ubuntu Server如何配置SFTP(建立用户监狱)
- php实现ssh客户端,php无阻塞SSH客户端实例
- ehcache springboot_Spring Boot 入门示例合集(附源代码)
- 网页Object标签 遮盖DIV标签解决方法
- Python类私有方法的陷阱
- 页面加载完某个函数不工作 选择器也没错
- android.mk简单介绍
- 数据中心的容器操作系统--k8s理解