一、概述
1、简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的NOSQL系列的非关系型key-value数据库;
数据存储在内存中的数据库;
2、关系型数据库与非关系型数据库
关系型数据库:
1、数据之间有关联关系;
2、数据存储在电脑硬盘文件上;
非关系型数据库:
1、数据之间没有关联关系;
2、数据存储在电脑内存上;
3、问题
当经常查询一些不太经常变化的数据,操作关系型数据库非常耗时!
解决方案:
使用缓存思想解决此问题,第一次查询数据的时候从数据库查询,然后放入缓存,再返回查询结果, 等以后查询的时候直接在缓存里面返回结果即可。
二、Redis下载安装和简介
下载地址:
https://github.com/MicrosoftArchive/redis/releases
安装:
直接解压即可;
重要文件简介:
redis.windows.conf:配置文件;
redis-server.exe:服务器端;
redis-cli.exe:客户端;
三、命令操作
1、Redis的数据结构
key-value:键值对结构的数据;
其中key是字符串,value有五种数据类型:
1、字符串类型:string
2、哈希类型:hash
3、列表类型:list
-- 列表允许重复,有序;
4、集合类型:set
-- 集合不允许重复,无序;
5、有序集合类型:sortedset
-- 集合不允许重复,有序;
2、字符串类型
存储
set key value
获取
get key
删除
del key
代码演示:
3、哈希类型
存储
hset key field value
获取
hget key field
删除
hdel key field
代码演示
4、列表类型(list)
可以添加一个元素到列表的头部(左边)或者尾部(右边);
存储
1、将元素添加到列表左边:lpush key value;
2、将元素添加到列表右边:rpush key value;
获取
1、获取一个范围的元素:lrange key start end
-- 获取所有start end是0 -1
删除
1、删除列表最左边的元素并将该元素返回:lpop key
2、删除列表最右边的元素并将该元素返回:rpop key
代码演示
5、集合类型set
存储
sadd key value
获取
smembers key:获取set集合的所有元素;
删除
srem key value:删除set集合中的某个元素;
代码演示
6、有序集合类型sorted set
存储
zadd key score value:score分数,元素按照分数大小排序;
获取
查询某一范围的元素:zrange key start end
-- 获取所有start end是0 -1
删除
zrem key value:删除某一元素
代码演示
7、通用命令
1、查询所有的键:keys *
2、获取键对应的数据类型:type key
3、删除指定的键值对:del key
四、持久化
1、说明
Redis是一个内存数据库,数据临时存放在内存中,我们可以将数据保存到硬盘中;
2、两种持久化机制
RDB
默认,不需要进行配置,默认使用这种机制;
在一定的间隔时间中,检测key的变化情况,然后持久化数据;
AOF
日志操作记录方式,可以记录每一条命令的操作,可以在每次操作后,持久化数据;
3、EDB(有可能丢失数据)
使用步骤
第一步:编辑redis.windows.conf文件
编辑redis.windows.conf文件:(将下面的数值进行修改即可)
# after 900 sec (15 min) if at least 1 key changed
15分钟后,至少有1个keys发生了改变,就进行保存
save 900 1
# after 300 sec (5 min) if at least 10 keys changed
5分钟后,至少有10个keys发生了改变,就进行保存
save 300 10
# after 60 sec if at least 10000 keys changed
1分钟后,至少有10000个keys发生了改变,就进行保存
save 60 10000
第二步:重启服务器,指定配置文件
D:\MySoft\Redis\Redis-x64-3.0.504>redis-server.exe redis.windows.conf
4、AOF(影响性能)
使用步骤
第一步:编辑redis.windows.conf文件
1、开关
默认:appendonly no(关闭AOF)
改成:appendonly yes(开启AOF)
2、频率
appendfsync always:每次操作进行持久化;
appendfsync everysec:(默认)每秒进行持久化;
appendfsync no:不进行持久化;
第二步:重启服务器,指定配置文件
D:\MySoft\Redis\Redis-x64-3.0.504>redis-server.exe redis.windows.conf
五、Java代码操作Redis(使用Jedis)
1、Jedis简介
使用Java操作Redis的工具;
2、快速入门
使用步骤
第一步:下载jedis相关,导入jar包;
下载地址(两个文件):
https://mvnrepository.com/artifact/redis.clients/jedis
https://mvnrepository.com/artifact/org.apache.commons/commons-pool2
第二步:获取连接;
第三步:进行操作;
第四步:关闭连接;
代码演示
package redis;
import redis.clients.jedis.Jedis;
public class MyRedis {
public static void main(String[] args) {
//1、获取连接
Jedis jedis = new Jedis("localhost",6379);
//2、进行操作
jedis.set("name","zibo");
//3、关闭连接
jedis.close();
}
}
运行结果(存储数据成功了)
3、操作String、hash、list、set和sorted set
与命令行操作极为类似,不再演示;
文档教程地址:https://www.runoob.com/redis/redis-java.html
补充:
setex(String key, int seconds, String value):可以指定键值对保存的时间,过时之后自动删除;
六、Jedis连接池(JedisPool)
1、使用步骤
第一步:创建JedisPool对象;
第二步:调用getResource()方法获取Jedis连接;
第三步:使用jedis;
第四步:归还jedis;
代码演示
package redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class MyRedis {
public static void main(String[] args) {
//第一步:创建JedisPool对象;
//无参,默认参数
JedisPool pool = new JedisPool();
//带参
//1、创建配置对象;
// JedisPoolConfig config = new JedisPoolConfig();
// config.setMaxTotal(50);
// config.setMaxIdle(10);
// JedisPool pool = new JedisPool(config,"localhost",6379);
//第二步:调用getResource()方法获取Jedis连接;
Jedis jedis = pool.getResource();
//第三步:使用jedis
jedis.set("name","zibo");
//第四步:归还jedis
jedis.close();
}
}
标签:set,Redis,redis,笔记,E028Web,jedis,value,key From: https://blog.51cto.com/u_13272819/6079272