官网教程:https://www.redis.net.cn/tutorial/3525.html
1. Jedis 使用
1.1 修改 redis.conf 配置
修改 /usr/local/redis-5.0.4/bin 目录下的 redis.conf 配置文件,然后启动 redis 服务端。
启动命令:[root@localhost /usr/local/redis-5.0.4/bin]# ./redis-server redis.conf
将绑定 127.0.0.1 注释掉,然后把 保护模式 关掉。
如果配置密码的话:如将密码配置为 root
客户端命令行中使用密码:auth 密码
1.2 创建 Maven 工程
导入依赖 pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version> </dependency>
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.72</version> </dependency>
|
1.3 编写测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| package com.demo.redis;
import com.alibaba.fastjson.JSON; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;
public class TestRedis {
@Test public void testRedis1() { Jedis jedis = new Jedis("192.168.247.128", 6379);
jedis.set("name", "张三"); String name = jedis.get("name"); System.out.println("name = " + name);
jedis.close(); }
@Test public void testRedis2() { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(30); jedisPoolConfig.setMinIdle(10); jedisPoolConfig.setMaxTotal(100);
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "192.168.247.128", 6379); Jedis jedis = jedisPool.getResource();
User user = new User(1001, "姜源", 20); jedis.set("user", JSON.toJSONString(user)); String dbuser = jedis.get("user");
System.out.println("dbuser = " + dbuser); jedis.close(); jedisPool.close(); } }
@Data @NoArgsConstructor @AllArgsConstructor class User{ private Integer id; private String name; private Integer age; }
|
2. Redis 管道操作
因为在操作Redis的时候,执行一个命令需要先发送请求到Redis服务器,这个过程需要经历网络的延迟,Redis还需要给客户端一个响应。
如果我需要一次性执行很多个命令,上述的方式效率很低,可以通过Redis的管道,先将命令放到客户端的一个Pipeline中,之后一次性的将全部命令都发送到Redis服务,Redis服务- 次性的将 全部的返回结果响应给客户端。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @Test public void pipeline(){ JedisPool pool = new JedisPool("192. 168.199.109",6379); long l = System.currentTimeMillis():
Jedis jedis = pool.getResource(); Pipeline pipelined = jedis.pipelined(); for(int i = 0; i < 100000; 1++){ pipelined.iner("qq"); } pipelined.syncAndReturnAll(); jedis.close(); System.out.print1n(System.currentTimeMillis() - 1); }
|