#Redis非关系型数据库。 一般作为关系型数据库的补充,把它们的优点都表现出来,弥补各自的缺点。 一般作为缓存存在。
#安装和配置 ##1. 在安装目录创建一个bat文件 内容:redis-server.exe redis.windows.conf ##2. 设置配置文件redis.windows.conf中 maxheap 1024000000
#数据结构(指的是redis中value的数据结构) string 字符串 hash 相当于java中的map集合,有key有value list 队列的数据结构 set 集合,不允许重复元素。无序的 sortedset 有序集合。不允许重复元素
#命令 ##string ####1. 存储: set key value ####2. 获取: get key ####3. 删除: del key
##hash ####1. 存储: hset key field value ####2. 获取: hget key field: 获取指定的field对应的值 hgetall key:获取所有的field和value ####3. 删除: hdel key field ####4. 删除所有del key
##list ####1. 添加:
##set ####1. 存储:sadd key value ####2. 获取:smembers key:获取set集合中所有元素 ####3. srem key value:删除set集合中的某个元素 ####4. 删除所有del key
##sortedset ####1. 存储:zadd key score value score越小,排名越靠前 ####2. 获取:zrange key start end [withscores] start:开始索引 end:结束索引 -1代表获取到集合的结尾 ####3. 删除:zrem key value ####4. 删除所有del key
##通用命令 ####1. keys * : 查询所有的键 ####2. type key : 获取键对应的value的类型
#Jedis 使用Java代码操作redis。 使用步骤 1. 导入jar包 2. 创建Jedis对象 3. 使用jedis对象调用方法操作redis数据库,方法的名称和redis命令的名称一致 4. 释放资源 jedis.close() setex设置一个有有效期的数据 jedis.zrevrange()倒序查询sortedset
#jedis连接池 JedisPool 直接创建对象使用即可 new JedisPool(config,"localhost",6379) 获取连接 Jedis jedis = jedisPool.getResource(); #案例 1. 在index.html中,当页面加载完成后,发送异步请求。 2. 在后台Servlet中,获取请求。 3. Servlet调用Service,Service调用DAO service调用DAO之前,先从redis中获取数据 4. DAO查询数据库,返回省份列表数据。 5. 依次返回到Servlet后, list需要转为json格式的字符串返回到前台。 6. 在前台index.html中,异步请求的回调函数位置,获取返回的json数据。解析json数据,通过dom操作,把数据展示到页面中。 #缓存 前提: 1. 数据需要经常进行查询 2. 数据不经常发生变化 策略: 优先从读取速度比较快的地方获取数据。 先从redis中拿,如果有,直接返回 如果没有,查询数据库,同时把数据存入redis #优化: 1. 时间换空间 byte[] bytes = new byte[1024]; 2. 空间换时间 3. 空间换空间 4. 时间换时间
原文:https://www.cnblogs.com/maomaodesu/p/12143050.html