一、新建一个maven工程,工程可以以jar的形式或war都行,然后导入正确的依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>redis</artifactId>
<version>0.0.1-SNAPSHOT</version> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.5.0</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin> </plugins> </build> </project>

二、建一个连接redis数据库的工具类

package com.xiangjun.redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; public class RedisUtil {

  //服务器IP地址
private static String ADDR = "23.228.103.10";
  
  //端口
private static int PORT = 6379;
  //密码
private static String AUTH = "123456";
  //连接实例的最大连接数
private static int MAX_ACTIVE = 1024;
  
  //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
private static int MAX_IDLE = 200;
  
//等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
private static int MAX_WAIT = 10000;
    
  //连接超时的时间  
private static int TIMEOUT = 10000;
  // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
private static boolean TEST_ON_BORROW = true; private static JedisPool jedisPool = null; /**
* 初始化Redis连接池
*/ static { try { JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH); } catch (Exception e) { e.printStackTrace();
} } /**
* 获取Jedis实例
*/ public synchronized static Jedis getJedis() { try { if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
} } catch (Exception e) {
e.printStackTrace();
return null;
} } /***
*
* 释放资源
*/ public static void returnResource(final Jedis jedis) {
if(jedis != null) {
jedisPool.returnResource(jedis);
} } }

三、redis的增删改查的测试

package com.xiangjun.redis;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import redis.clients.jedis.Jedis; public class TestRedis { private Jedis jedis; /**
* 连接redis服务器
*/
public void connectRedis() {
jedis=RedisUtil.getJedis();
} /**
* redis操作字符串
*/
public void testString() {
//添加数据
jedis.set("name", "youcong");
System.out.println(jedis.get("name")); //拼接字符串
jedis.append("name", ".com");
System.out.println(jedis.get("name")); //删除数据
jedis.del("name");
System.out.println(jedis.get("name")); //设置多个键值对
jedis.mset("name","yc","age","22","qq","1933108196");
jedis.incr("age");//加1操作
System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" +jedis.get("qq"));
} /**
* redis操作map集合
*/
public void testMap() {
//添加数据
Map<String,String> map = new HashMap<String,String>(); map.put("name", "yc");
map.put("age", "22");
map.put("qq", "1933108196");
jedis.hmset("user", map); //取出users中的Name,执行结果:[minxr]-->注意结果是一个泛型的List
//第一个参数是存入redis中map对象的key,后面跟的是放入map中对象的key,后面的key可以是多个,是可变的
List<String> rsmap = jedis.hmget("user", "name","age","qq");
System.out.println(rsmap); //删除map中的某个键值
jedis.hdel("user", "age");
System.out.println(jedis.hmget("user", "age"));//因为删除了,所以返回的是Null
System.out.println(jedis.hlen("user"));//返回key为user的键中存放的值的个数2
System.out.println(jedis.exists("user"));//是否存在key为user的记录,返回true
System.out.println(jedis.hkeys("user"));//返回map对象中的所有key
System.out.println(jedis.hvals("user"));//返回map对象中的所有value Iterator<String> iter = jedis.hkeys("user").iterator();
while(iter.hasNext()) {
String key = iter.next();
System.out.println(key+":" + jedis.hmget("user", key));
} } /**
* redis操作List集合
*/
public void testList() {
//开始前,先移除所有的内容
jedis.del("java framework");
System.out.println(jedis.lrange("java framework", 0, -1)); //先向key java framework 中存放三条数据
jedis.lpush("java framework","spring");
jedis.lpush("java framework", "struts");
jedis.lpush("java framework", "hibernate"); //再取出所有数据jedis.lrange是按范围取出
//第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
System.out.println(jedis.lrange("java framework", 0, -1)); jedis.del("java framework");
jedis.rpush("java framework", "spring");
jedis.rpush("java framework", "struts");
jedis.rpush("java framework","hibernate");
System.out.println(jedis.lrange("java framework", 0, -1)); } /**
* redis操作set集合
*
*/ public void testSet() { //添加
jedis.sadd("user", "liuling");
jedis.sadd("user", "xinxin");
jedis.sadd("user","ling");
jedis.sadd("user", "zhangxinxin");
jedis.sadd("user", "who"); //删除
jedis.srem("user", "who");
System.out.println(jedis.smembers("user"));//获取所有加入的value
System.out.println(jedis.sismember("user", "who"));//判断who是否是user集合的元素
System.out.println(jedis.srandmember("user"));
System.out.println(jedis.scard("user"));//返回集合的元素个数 } /**
* redis排序
*/ public void testSort() { //jedis 排序
//注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
jedis.del("a");//先清除数据,再加入数据进行测试
jedis.rpush("a", "1");
jedis.lpush("a", "6");
jedis.lpush("a", "3");
jedis.lpush("a", "9");
System.out.println(jedis.lrange("a", 0, -1));
System.out.println(jedis.sort("a"));//[1,3,6,9] //输入排序后结果
System.out.println(jedis.lrange("a", 0, -1)); } /**
* redis连接池
*/ public void testRedisPool() { RedisUtil.getJedis().set("newname", "test"); System.out.println(RedisUtil.getJedis().get("newname")); } public static void main(String[] args) {
TestRedis test = new TestRedis();
test.connectRedis();
test.testSort();
}
}

Java连接Redis之redis的增删改查的更多相关文章

  1. Java连接本地MySQL数据库进行增删改查操作

    package Dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat ...

  2. java连接mysql数据库 三 实现增删改查操作

    同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...

  3. Java通过JDBC进行简单的增删改查(以MySQL为例)

    Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...

  4. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

  5. 用JDBC连接 数据库 进行简单的增删改查

    JDBC为java的基础.用jdbc实现对数据库的增删改查的功能是程序员的基本要求.本例以mysql为例,首先要使用本例需要添加mysql-connector-java-5.1.7-bin.jar包. ...

  6. Java 使用控制台操作实现数据库的增删改查

    使用控制台进行数据库增删改查操作,首先创建一个Java Bean类,实现基础数据的构造,Get,Set方法的实现,减少代码重复性. 基本属性为 学生学号 Id, 学生姓名 Name,学生性别 Sex, ...

  7. Java对XML文档的增删改查

    JAVA增删改查XML文件   最近总是需要进行xml的相关操作. 不免的要进行xml的读取修改等,于是上网搜索,加上自己的小改动,整合了下xml的常用操作. 读取XML配置文件 首先我们需要通过Do ...

  8. java数据库(MySQL)之增删改查

    1.查询数据 先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实 际上就是对这个集合的查询: public class Show { public static ...

  9. Java描述数据结构之链表的增删改查

    链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个节点里存放的是下一个节点的"指针".在Java中的数据分为引用数据类型和基础 ...

  10. 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作

    用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...

随机推荐

  1. HighCharts使用更多图表HighChartsMore

    添加highcharts-moreimport HighCharts from 'highcharts'import highchartsMore from 'highcharts/highchart ...

  2. JS调用模式

    在js中,一共4中调用方式.需要注意的是,调用方式中,this的指向问题. 函数调用模式 this丢失,debug会提示未定义相应属性.按照规范,需要将this赋值给that let myObj = ...

  3. ConcurrentHashMap底层实现原理(JDK1.8)源码分析

    ref:https://blog.csdn.net/xu768840497/article/details/79194701 http://www.cnblogs.com/leesf456/p/545 ...

  4. OSX系统下配置Apache+PHP+MySQL+Navicat

    概述 OSX系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache.PHP和MySQL的安装与配置,为开始进行开发铺好路 Apache 启动Apa ...

  5. HTML--SVG基础

    一 SVG概述 SVG是Scalable Vector Graphics的缩写,即缩放式矢量图形; 优点: 1.使用编辑器即可编辑图形; 2.基于XML,SVG图形可以被很容易的搜索,脚本化和压缩; ...

  6. vue项目未加载完成前显示loading...

    1.在Index.html里面加入loading的元素,让loading元素显示,让app元素隐藏 <!DOCTYPE html> <html> <head> &l ...

  7. Web.config配置customErrors mode为Off后依然不显示具体错误的可能原因。

    有时候我们的网站程序在本地运行没有问题,但在上传到远程服务器后则报错.这就需要我们了解具体错误,但IIS默认只显示统一的运行时错误,想要知道具体错误就需要配置Web.config中customErro ...

  8. 转发:tomcat的acess_log打印post请求参数,分析日志

    转载自:https://blog.csdn.net/qq_30121245/article/details/52861935 1) 在项目中加入相应的包和类,加载那里无所谓,只要web.xml配置正确 ...

  9. 原生js实现二级联动下拉列表菜单

    二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...

  10. springcloud 入门 8 (config配置中心)

    Spring Cloud Config: 配置中心为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件,它就是Spring Cloud Config. 在分布式系统中,由于服务数量巨多, ...