zoukankan      html  css  js  c++  java
  • 非关系型数据库redis

    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. 添加:

    1. lpush key value: 将元素加入列表左表
    2. rpush key value:将元素加入列表右边

    2.lrange key start end :范围获取

    start:开始索引
    end:结束索引
    -1代表获取到list的结尾

    3. lpop key: 删除列表最左边的元素,并将元素返回

    rpop key: 删除列表最右边的元素,并将元素返回

    4. 删除所有del key

    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. 时间换时间
  • 相关阅读:
    Python生成二维码
    SSO单点登录
    小说 · 凉生,我们可不可以不忧伤
    RabbitMQ入门教程——.NET客户端使用
    ASP.NET MVC 拓展ActionResult实现Html To Pdf 导出
    ASP.NET MVC 拓展ViewResult实现word文档下载
    RabbitMQ入门教程——安装及配置
    MongoDB学习笔记——分片(Sharding)
    MongoDB学习笔记——Replica Set副本集
    MongoDB学习笔记——Master/Slave主从复制
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/12143050.html
Copyright © 2011-2022 走看看