zoukankan      html  css  js  c++  java
  • nosql之redis基础学习

    redis

    学习官网redis中文网

    一、概念

    redisnosql系列的一款高性能非关系型数据库

    Redis支持的键值数据类型:字符串类型 String

                                                 哈徐类型 hash

                                                列表类型 list

                                                集合类型 set

                                     有序集合类型 sortedset

    经常查询一些一些不大经常发生变化的数据

    缓存思想:1、从缓存中获取数据----1)有数据直接返回。(2)没有数据、从数据库中查询,将数据放入缓存中,返回数据

    主流nosql产品:

    (1)键值对(key-Value)存储数据库

             产品:TokyoCabinet/Tyrantredis、、

             典型应用:内容缓存、主要用于处理大量数据的高访问负载

             数据模型:一系列键值对

             优势:快速查询

             劣势:存储的数据缺少结构化

    (2)列存储数据库

             产品:CassandeaHbaseRiak

             典型应用:分布式的文件系统

             数据模型:以列簇式存储、将同一列数据存放在一起

             优势:查找速度快、可拓展性强、更容易进行分布式拓展

             劣势:功能相对局限

    (3)文档型数据库

             产品:MongDBCouchDB

             典型应用:web应用(与key-value类似,value是结构化的)

             数据模型:一系列键值对

             优势:数据结构要求不严格

             劣势:查询性能不高,而且缺乏统一的查询语法

    (4)图形(graph)数据库

             产品:Noe4jInfogridInfinite Graph

             典型应用:社交网络

             数据模型:图结构

             优势:利用图结构相关算法

             劣势:需要对整个图做计算才能得出结果,不容易做出分布式的集群方案

    二、下载安装

    redis.windows.conf :配置文件

    redis-cli.exe :redis的客户端

    Redis-server.exe :redis的服务器端

    三、使用redis俩种方式(命令操作、java代码)

    1、redis的数据结构

      Redis存储的是:keyvalue格式的数据 其中key都是字符串,value有五种不同的数据结构:字符串类型 String

        哈希类型 hashmap格式

            列表类型 list linkedlist格式

            集合类型 set  hashSet格式

            有序集合类型 sortedset

    2、命令形式

    1*哈希类型 hash

    (1)存储: hset key field value

    (2)获取指定的fieldhget key field

    (3)获取所有的 fieldhgetAll key

    (4)删除: hdel key field

    2*字符串类型 String

    (5)存储:set key value

    (6)获取: get key

    (7)删除: del key

    3*列表类型 list:可以添加一个元素列表到头部(左边)或者尾部(右边)重复

    (8)添加:lpush  key value :将元素加入列表的左边 rpush Key value:将元素加到右边

    (9)获取: lrange key start  end:范围获取  

    (10)删除: lpop key :删除列表最左边的元素,并将元素返回

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

       4*集合类型 set :不允许重复元素

    (11)存储:sadd key value

    (12)获取:smembers key 获取set 集合中所有元素

    (13)删除 srem key value: 删除集合中某个元素

      5*有序集合类型 sortefset:不允许重复元素、且元素有序

    (14)存储:zadd key score value

    (15)获取:zrange key  start  end

    (16)删除 srem key value

      6*通用命令

    1、keys  * 查询所有键

    2、Type key:获取键对应value类型

    3、del key:删除指定key value

    四、持久化操作说

    1、redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失

    2、持久化机制

      1*RDB默认方式,不需要进行配置就可以使用这种机制。

     在一定的间隔时间内,检测key的变化情况,然后持久化数据(性能影响较低)

     

       1)编辑redis.windows.conf文件

      2*ADF日志记录的方式,可以记录灭一条命令的操作,可以每一次命令操作后,持久化数据。

     1)编辑redis.windows.conf文件

    五、Java操作redis

    1、jedis:一款java操作redis数据库的工具

    2、使用步骤:

    (1)下载jedisjar

    (2)使用:

      

      //1、打开连接
    Jedis jedis=new Jedis("localhost",6379);
    //字符串
    jedis.set("name","李青华");
    jedis.set("pwd","123");
    jedis.set("old","23");
    jedis.set("sexs","男");
    jedis.set("sexs","男");
    //哈希
    jedis.hset("customer","uasername","李青华");
    jedis.hset("customer","age","23");
    jedis.hset("customer","sex","男");
    jedis.hset("custoemr","pwd","123");
    jedis.hset("customer","pwd","123");
    
    //列表list
    jedis.lpush("student","李青华");
    jedis.lpush("student","李青华");
    jedis.rpush("student","123");
    jedis.rpush("student","男");
    jedis.rpush("student","23");
    
    //集合set
    jedis.sadd("scustomer","李青华");
    jedis.sadd("scustomer","23");
    jedis.sadd("scustomer","123");
    jedis.sadd("scustomer","男");
    jedis.sadd("scustoemr","男");
    //有序集合sortedSet
    jedis.zadd("zcustoemr",1,"李青华");
    jedis.zadd("zcustoemr",2,"123");
    jedis.zadd("zcustoemr",3,"李青华");
    jedis.zadd("zcustoemr",4,"男");
    jedis.zadd("zcustoemr",1,"23");
    jedis.close();

    六、 Jedis连接池

    JedisPool

    1、使用

      1*创建JedisPool连接池对象

      2*调用方法getResource()获取Jedis连接

    注意:使用redis缓存一些不经常发生改变的数据。

     

              *数据库中的数据一旦发生改变,则需要更新缓存。数据库的表执行增删改相关操作,需要将redis缓存数据清空,再次存入。

              *service对应的增删改方法中将redis数据删除。

     

  • 相关阅读:
    POJ 3278 Catch That Cow (附有Runtime Error和Wrong Answer的常见原因)
    POJ 2251 Dungeon Master (三维BFS)
    HDU 1372 Knight moves
    [Ubuntu] <uptime>命令
    【C】哈夫曼编码
    【C++】开辟数组未初始化问题
    免费下载IEEE论文
    随机换装
    BFS解迷宫问题(Go实现)
    DFS解迷宫问题(Go实现)
  • 原文地址:https://www.cnblogs.com/lqh969696/p/11390255.html
Copyright © 2011-2022 走看看