redis
--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为读取配置文件的对象
config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));//maxTotal:最大连接数
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));//maxIdle:最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
new JedisPool([config],主机ip地址,端口号);
---调用方法 getResource()方法获取Jedis连接
--注意:
* 使用redis缓存一些不经常发生变化的数据。
* 数据库的数据一旦发生改变,则需要更新缓存。
1-数据库的表执行 增删改的相关操作,需要将redis缓存数据情况,再次存入
2-在service对应的增删改方法中,将redis数据删除。