Reids学习2 -- 使用Jedis操作Redis
1. 如何获取Jedis
获取Jar包可以通过Maven库获取:http://mvnrepository.com/artifact/redis.clients/jedis
或者可以通过Maven配置:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2. 设置Redis连接认证
2.1 修改配置文件redis.conf,放开requirepass的注释
################################## SECURITY ################################### # Require clients to issue AUTH <PASSWORD> before processing any other
# commands. This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
requirepass foobared
修改好后,重起redis:
bash-4.2$ ./redis-server ../redis.conf
2.2 或者直接在redis-cli中修改,无需重起,立即生效
127.0.0.1:6379> config set requirepass 123456
3. Jedis操作代码
package com.rc.jedis.common.util;
import redis.clients.jedis.Jedis;
public class JedisUtil {
private static Jedis jedis;
static {
jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
}
public static Jedis getJedisConn() {
return jedis;
}
public static void main(String[] args) {
System.out.println("==================Test String===============================");
testString();
System.out.println("==================Test List===============================");
testList();
System.out.println("==================Test Set===============================");
testSet();
System.out.println("==================Test Hash===============================");
testHash();
System.out.println("==================Test Zset===============================");
testZset();
}
private static void testString() {
//添加数据
jedis.set("skey2", "testskey2");
System.out.println(jedis.get("skey2"));
//在字符串后面添加字符
jedis.append("skey2", " is a test case");
System.out.println(jedis.get("skey2"));
//删除
jedis.del("skey2");
System.out.println(jedis.get("skey2"));
//批量添加
jedis.msetnx("skey1","skey1 value", "skey2", "skey2 value", "skey3", "skey3 value", "skey4", "2");
jedis.incr("skey4");
System.out.println(jedis.get("skey1") + " - " + jedis.get("skey2") + " - " + jedis.get("skey3") + " - " + jedis.get("skey4"));
}
private static void testList() {
//添加List数据
jedis.lpush("lkey1", "1", "2", "3");
//获取指定位置的数据
System.out.println("list:" + jedis.lindex("lkey1", 1));
//弹出List中所有值
String popString = jedis.lpop("lkey1");
while(popString != null)
{
System.out.println("List:" + popString);
popString = jedis.lpop("lkey1");
}
//同lpush
jedis.rpush("lkey1", "1", "2", "3");
System.out.println("list:" + jedis.lindex("lkey1", 1));
//删除List
jedis.del("lkey1");
System.out.println("list:" + jedis.lindex("lkey1", 1));
}
private static void testSet() {
//添加Set数据,同Java的Set,重复数据只存一条
jedis.sadd("sekey1", "1", "2", "3", "1", "4", "5", "4");
System.out.println(jedis.smembers("sekey1"));
//检查元素是否存在
System.out.println(jedis.sismember("sekey1", "3"));
System.out.println(jedis.sismember("sekey1", "9"));
//移除元素
jedis.srem("sekey1", "2");
System.out.println(jedis.sismember("sekey1", "2"));
}
private static void testHash() {
//添加数据
jedis.hset("hkey1", "fkey1", "1");
jedis.hset("hkey1", "fkey2", "2");
jedis.hset("hkey1", "fkey3", "3");
System.out.println(jedis.hget("hkey1", "fkey2"));
System.out.println(jedis.hgetAll("hkey1"));
//删除
jedis.hdel("hkey1", "fkey2");
System.out.println(jedis.hget("hkey1", "fkey2"));
System.out.println(jedis.hgetAll("hkey1"));
}
private static void testZset() {
//添加数据
jedis.zadd("zkey1", 1, "zfkey1");
jedis.zadd("zkey1", 3, "zfkey3");
jedis.zadd("zkey1", 2, "zfkey2");
jedis.zadd("zkey1", 5, "zfkey5");
jedis.zadd("zkey1", 4, "zfkey4");
System.out.println(jedis.zrange("zkey1", 0, -1));
System.out.println(jedis.zrangeByScore("zkey1", 0, 2));
jedis.zrem("zkey1", "zfkey3");
System.out.println(jedis.zrange("zkey1", 0, -1));
}
}
Reids学习2 -- 使用Jedis操作Redis的更多相关文章
- jedis操作redis的几种常见方式总结
Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Jedis操作Redis数据库
添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...
- Jedis操作Redis
Jedis操作Redis的常用封装方法 @Resource(name="jedispool") private JedisPool pool=null; /** * 设置缓存对象过 ...
- 四、Jedis操作Redis
前言: 原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- Jedis操作Redis技巧详解
对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...
- Java中Jedis操作Redis与Spring的整合
Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...
- Jedis学习使用(java操作redis)
Jedis 是 Redis 官方首选的 Java client开发包. 工作过程总结的一个演示样例.贴出来,例如以下: package com.wujintao.redis; import java. ...
随机推荐
- 51单片机学习笔记(郭天祥版)(9)——IIC、EEPROM
IIC是两根线,单总线,只有一根数据线,发送数据和读取收据都是一根线,像我们之前学的AD.DA都是许多线,许多线的话,这样做系统可以少浪费资源,少浪费控制IO口的资源,这种并行的处理速度快.所以线越多 ...
- 基于IPv6的数据包抓包分析(GNS3)
一.实验拓扑 二.路由配置 路由R1.R2.R3.R4.R5详细配置: 1.配置R1: R1(config)#interface fastEthernet 0/1 R1(config-if)#ipv6 ...
- .gitinore配置失效问题
问题:在.gitinore中配置忽略项,配置失效 原因:新增加忽略项已经提交过,在暂存区或分支上被版本控制 解决:删除暂存区或分支上的文件(本地需要使用, 只是不希望这个文件被版本控制), 可以使用 ...
- Quartz.Net进阶之五:TriggerListener 、JobListener 和 SchedulerListener
一.介绍 今天开始学习监听器,就是 Listener,在Quartz.Net 中,主要包含3类的监听器,主要内容包括:TriggerListener .JobListener 和 SchedulerL ...
- nuget安装本地nupkg文件
打开visual studio,菜单选择‘工具’->‘选项’ 然后 接下来,选择‘程序包源’,把‘包括预发行版’打钩,然后安装需要的包到工程即可,如下图:
- 史上最全 | 39个RNAseq分析工具与对比
文献:Sahraeian S M E, Mohiyuddin M, Sebra R, et al. Gaining comprehensive biological insight into the ...
- 201621123002《JAVA程序设计》第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 用 ...
- jquery 上下文菜单实现
话不多说,直接贴上官方demo演示: https://swisnl.github.io/jQuery-contextMenu//demo
- 从mysql主从复制到微信开源的phxsql
严格的来说,微信开源的phxsql不是数据库,而是一个数据库的插件: 传统的互联网数据库结构一般是这样的: 服务访问数据库是通过分片来的: 除了这种基于hash的分片,还有一种基于range的分片方式 ...
- http 自定义信息头(header)设置与获取
一.后端设置(如:java) 在你服务端(如:java)返回的时候写上: res.setHeader("Access-Control-Expose-Headers",propNam ...