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数据删除。

 

posted @ 2019-08-21 17:56  清华大咖  阅读(223)  评论(0编辑  收藏  举报