redis:
一款高性能的NOSQL系列的非关系型数据库 存储 key:value 类型数据 数据之间没关联,存储在内存中
redis数据结构
key,value格式的数据,key都是字符串,value有5种数据结构
1) 字符串类型
string
- set key
- get key
- del key
2) 哈希类型
hash map格式
- hset key field value
- hget key field
- hdel key field
- hgetall key
3) 列表类型
list linked、list格式。支持重复元素
- lpush 列表名 value
- rpush 列表名 value
- lrange 列表名 start end
- lpop 列表名 =删最左边并返回
- rpop 列表名 =删最右边并返回
4) 集合类型
set 不允许重复元素
- sadd 集合名 value
- smenbers 集合名
- srem 集合名 value
5) 有序集合类型
sortedset 不允许重复元素,且元素有顺序 自动排序 通过score对value排序
- zadd 集合名 score vlaue
- zrange 集合名 start end
- zrem 集合名 value
keys * 查询所有键
type key 获取键对应值的类型
del key 删除指定的key value
持久化
【RDB】 默认方式 不需配置 在一定间隔时间中,检测key的变化情况,然后持久化数据
【AOF】 日记记录方式,可以记录每一条命令的操作,可以每一次命令操作后, 持久化数据
持久化 | |
---|---|
appendonly | no关闭 yes开启 |
appendfsync always | 每一次操作进行持久化 |
appendfsync everysec | 每秒进行持久化 |
appendfsync no | 不进行持久化 |
java操作redis
jedis使用
- 下载jedis的jar包(java操作redis数据库的工具)
commons-pool2-2.3.jar
jedis-2.7.0.jar
- 使用 new Jedis()获取连接 和redis命令一样的方法名方法有相同的作用
Jedis jedis = new Jedis("localhost",6379);//如果使用空参构造,默认为localhost和6379端口
jedis连接池:JedisPool
- 创建JedisPool
JedisPoolConfig config = new JedisPoolConfig();
//pro为读取配置文件的对象
//maxTotal:最大连接数
config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
//maxIdle:最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
new JedisPool([config],主机ip地址,端口号);
// 调用方法
getResource() // 该方法获取Jedis连接
注意:
- 使用redis缓存一些不经常发生变化的数据。
- 数据库的数据一旦发生改变,则需要更新缓存。
- 1-数据库的表执行 增删改的相关操作,需要将redis缓存数据情况,再次存入
- 2-在service对应的增删改方法中,将redis数据删除。