自学Redis技术,如何在Java应用
~~自学之路之艰辛,现在的世界离不开百度 但是百度要么找到大牛篇,要么就是复制粘贴篇。 (小白的无奈)以此篇开始,无论是否找到工作,开启了漫漫自学之路 一个程序员小白的成长 希望,这世界留点余地,时刻准备着,
但希望有足够的时间与精力支持我走下去!~~
学习需要理论结合实践
首先了解什么是redis:(百度百科更全面,本系列意在坚持作者的自学之路)
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
redis安装
请参考:菜鸟教程redis的安装
安装后回来更快速能在java中应用
- 首先新建一个maven项目
在pom.xml中添加依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.1.0</version>
</dependency>
打开redis 安装目录 单击红框处,并输入cmd 然后回车
在命令行输入 redis-server.exe redis.windows.conf
确保redis服务开启,这里我选择手动开启并未在服务中一直保持开启(与Mysql服务相通)
然后再新建测试类
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class RedisJava{
public static void main(String[] args) {
//localhost:127.0.0.1:6379
Jedis jedis = new Jedis("localhost");
System.out.println("连接成功!");
//密码验证,没有设置过密码可以跳过
jedis.auth("xxx");
//查看服务是否运行
System.out.println("服务是否运行:" + jedis.ping());
//设置 redis 字符串数据
jedis.set("runoobkey", "www.runoob.com");
// 获取存储的数据并输出
System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
//存储数据到列表中
jedis.lpush("site-list", "Runoob");
jedis.lpush("site-list", "Google");
jedis.lpush("site-list", "Taobao");
// 获取存储的数据并输出
List<String> list = jedis.lrange("site-list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("列表项为: "+list.get(i));
}
// 获取Keys数据并输出
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
}
}
注意没设密码,不需要这行代码
测试结果:应用成功!