一.redis配置说明(redis.conf)
1.bind 127.0.0.1 # 监听ip
2.port 6379 # 监听端口号
3.daemonize yes # 是否以守护进程运行,如果以守护进程运行,则不会在命令行阻塞
4.dbfilename dump.rdb # 将数据写入到 dump.rdb 文件中
5.dir ./ # 指定数据文件存储目录
6.logfile “/opt/redis/logs/redis-server.log” # 指定redis日志输出路径
7.database 16 # redis默认有16个数据库 编号0到15
二.redis启动
1.启动服务端
./redis-server …/conf/redis.conf # 服务端启动并指定配置文件
2.启动客户端
./redis-cli
三.redis的数据结构
redis存储的是:key,value格式的数据,其中key都是字符串,value有五种不同的数据结构
1.字符串类型:string
2.哈希类型 hash: map格式
3.列表类型 list :linkedlist格式
4.集合类型 set:
5.有序集合类型:sortedset
四.操作
1.客户端选择数据库
客户端默认连接0号数据库,通过select number 选择切换数据库
2.基本命令
http://redis.cn/commands.html
3.常用命令
(1) redis 127.0.0.1:6379> FLUSHALL
Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。
五.持久化
1.redis是一个内存数据库,当redis服务器重启,电脑重启 ,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。
2.redis持久化机制:
1.RDB:默认方式,不需要进行配置,默认就使用这种机制
* 在一定的间隔时间中,检测key的变化情况,然后持久化数据
2.AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据
* 修改配置文件 appendonly no 为 appendonly yes (开启aof)
* 使用,下面配置其中一种
# appendfsync always : 每一次操作都进行持久化
appendfsync everysec :每隔一秒进行一次持久化
# appendfsync no :不进行持久化
五.java操作redis
*Jedis:一款java操作redis数据库的工具
使用步骤
1.导入jar包
commons-pool2-2.3.jar,jedis-2.7.0.jar
2.简单使用
// 1.获取连接
Jedis jedis = new Jedis("localhost", 6379);
// 2.操作
jedis.set("username", "zhangsan");
// 3.关闭连接
jedis.close();
六.连接池
- 使用:
1.创建JedisPool连接池对象
2.调用方法 getResource()方法获取Jedis连接
3.归还连接
eg
package utils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* JedisPool工具类
* 加载配置文件,配置连接池的参数
* 提供获取连接的方法
*/
public class JedisPoolUtils {
private static JedisPool jedisPool;
static {
// 读取配置文件
InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
Properties pro = new Properties();
// 关联文件
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
// 获取数据,设置到JedisPoolConfig中
JedisPoolConfig config = new JedisPoolConfig();
String maxTotal = pro.getProperty("maxTotal");
config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
// 初始化JedisPool
jedisPool = new JedisPool(config, pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
}
/**
* 获取连接的方法
*/
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
七.redis集群