redis
学习官网redis中文网
一、概念 :
redis是nosql系列的一款高性能非关系型数据库
Redis支持的键值数据类型:字符串类型 String
哈徐类型 hash
列表类型 list
集合类型 set
有序集合类型 sortedset
经常查询一些一些不大经常发生变化的数据
缓存思想:1、从缓存中获取数据—-(1)有数据直接返回。(2)没有数据、从数据库中查询,将数据放入缓存中,返回数据
主流nosql产品:
(1)键值对(key-Value)存储数据库
产品:Tokyo、Cabinet/Tyrant、redis、、
典型应用:内容缓存、主要用于处理大量数据的高访问负载
数据模型:一系列键值对
优势:快速查询
劣势:存储的数据缺少结构化
(2)列存储数据库
产品:Cassandea、Hbase、Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储、将同一列数据存放在一起
优势:查找速度快、可拓展性强、更容易进行分布式拓展
劣势:功能相对局限
(3)文档型数据库
产品:MongDB、CouchDB
典型应用:web应用(与key-value类似,value是结构化的)
数据模型:一系列键值对
优势:数据结构要求不严格
劣势:查询性能不高,而且缺乏统一的查询语法
(4)图形(graph)数据库
产品:Noe4j、Infogrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法
劣势:需要对整个图做计算才能得出结果,不容易做出分布式的集群方案
二、下载安装
redis.windows.conf :配置文件
redis-cli.exe :redis的客户端
Redis-server.exe :redis的服务器端
三、使用redis俩种方式(命令操作、java代码)
1、数redis的数据结构
Redis存储的是:key,value格式的数据 其中key都是字符串,value有五种不同的数据结构:字符串类型 String
哈希类型 hash:map格式
列表类型 list : linkedlist格式
集合类型 set : hashSet格式
有序集合类型 sortedset :
2、命令形式
1*哈希类型 hash
(1)存储: hset key field value
(2)获取指定的field: hget key field
(3)获取所有的 field:hgetAll 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)下载jedis的jar包
(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数据删除。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/13063.html