Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 优势
1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2.丰富的数据类型 – Redis支持二进制案例的Strings, Lists, Hashes, Sets 及 Ordered Sets
数据类型操作。
3.原子 –Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
4.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
boot整合
引入 spring-boot-starter-redis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
配置文件
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=localhost
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0
https://www.jianshu.com/
测试
package com.redis.base;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;
import java.util.*;
public class base {
public static void main(String[] args) {
//连接Redis 服务
Jedis jedis = new Jedis("192.168.1.207",6379);
//jedis.auth("密码");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
// String操作
jedis.set("key", "www");
System.out.println("redis 存储的字符串为: "+ jedis.get("key"));
//List入队
jedis.lpush("list","a");
jedis.lpush("list","b");
jedis.lpush("list","c");
//List出队
System.out.println( jedis.lpop("list"));
//List长度
System.out.println(jedis.llen("list"));
//List遍历
List<String> list = jedis.lrange("list", 0 ,10);
for(int i=0; i<list.size(); i++) {
System.out.println("List为: "+list.get(i));
}
//Set操作
jedis.sadd("set", "set1", "set2","set3");
Set<String> smembers = jedis.smembers("set");
System.out.println(smembers);
//Hash操作
jedis.hset("hash", "name", "zx");
Map<String, String> map = new HashMap<String, String>();
map.put("name0", "zx0");
map.put("name1", "zx1");
map.put("name2", "zx2");
jedis.hmset("hash", map);
Map<String, String> resmap = jedis.hgetAll("hash");
System.out.println(resmap);
//SortedSet操作
Map<String, Double> sourceMember = new HashMap<String, Double>();
for (int i = 0; i < 3; i++) {
double score = i;
sourceMember.put("stu" + score, score);
}
jedis.zadd("sortedset", sourceMember);
Set<Tuple> tuples = jedis.zrangeWithScores("sortedset", 0, -1);
for (Tuple tuple : tuples) {
System.out.println(tuple.getElement() + ":" + tuple.getScore());
}
}
}
以上是redis里集中数据结构的基本操作,更多操作请参考githup:Jedis基础类型全部详细操作
网友评论