box是什么意思在线翻译读音例句-成考补习
2023年4月4日发(作者:2019年河北高考一分一段表)
深⼊浅出理解Redis
1.概念:
redis是⼀款⾼性能的NOSQL系列的⾮关系型数据库
1.1.什么是NOSQL
NoSQL(NoSQL=NotOnlySQL),意即“不仅仅是SQL”,是⼀项全新的数据库理念,泛指⾮关系型的数据库。
随着互联⽹web2.0⽹站的兴起,传统的关系数据库在应付web2.0⽹站,特别是超⼤规模和⾼并发的SNS类型的web2.0纯动态⽹站已
经显得⼒不从⼼,暴露了很多难以克服的问题,⽽⾮关系型的数据库则由于其本⾝的特点得到了⾮常迅速的发展。
NoSQL数据库的产⽣就是为了解决⼤规模数据集合多重数据种类带来的挑战,尤其是⼤数据应⽤难题。
和关系型数据库⽐较
优点:
成本:
nosql数据库简单易部署,基本都是开源软件,不需要像使⽤oracle那样花费⼤量成本购买使⽤,相⽐关系型数据库价格便
宜。
查询速度:
nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,⾃然查询速度远不及nosql数据库。
存储数据的格式:
nosql的存储格式是key,value形式、⽂档形式、图⽚形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,⽽数
据库则只⽀持基础类型。
扩展性:
关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。
缺点:
维护的⼯具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10⼏年的技术同⽇⽽语。
不提供对sql的⽀持,如果不⽀持sql这样的⼯业标准,将产⽣⼀定⽤户的学习和使⽤成本。
不提供关系型数据库对事务的处理。
1.1.2.⾮关系型数据库的优势:
性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,⽽且不需要经过SQL层的解析,所以性能⾮常⾼。
可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以⾮常容易⽔平扩展。
1.1.3.关煸组词 系型数据库的优势:
复杂查询可以⽤SQL语句⽅便的在⼀个表以及多个表之间做⾮常复杂的数据查询。
事务⽀持使得对于安全性能很⾼的数据访问要求得以实现。对于这两类数据库,对⽅的优势就是⾃⼰的弱势,反之亦然。
1.1.4.总结
关系型逢组词语 数据库与NoSQL数据库并⾮对⽴⽽是互补的关系,即通常情况下使⽤关系型数据库,在适合使⽤NoSQL的时候使⽤NoSQL数
据库,
让NoSQL数据库对关系型数据库的不⾜进⾏弥补。
⼀般会将数据存储在关系型数据库中,在nosql数据库中备份存储关系型数据库的数据
1.2.主流的NOSQL产品
键值(Key-Value)存储数据库
相关产品:TokyoCabinet/Tyrant、Redis、Voldemort、BerkeleyDB
典型应⽤:内容缓存,主要⽤于处理⼤量数据的⾼访问负载。
数据模型:⼀系列键值对
优势:快速查询
劣势:存储的数据缺少结构化
列存储数据库
相关产品:Cassandra,HBase,Riak
典型应⽤:分布式的⽂件系统
数据模型:以列簇式存储,将同⼀列数据存在⼀起
优势:查找速度快,可扩展性强,更容易进⾏分布式扩展
劣势:功能相对局限
⽂档型数据库
相关产品:CouchDB、MongoDB
典型应⽤:Web应⽤(与Key-V人云亦云是什么意思 alue类似,Value是结构化的)
数据模型:⼀系列键值对
优势:数据结构要求不严格
劣势:查询性能不⾼,⽽且缺乏统⼀的查询语法
图形(Graph)数据库
相关数据库:Neo4J、InfoGrid、InfiniteGraph
典型应⽤:社交⽹络
数据模型:图结构
优势:利⽤图结构相关算法。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群⽅案。
1.3什么是Redis
Redis是⽤C语⾔开发的⼀个开源的⾼性能键值对(key-value)数据库,官⽅提供测试数据,50个并发执⾏100000个请求,读的速度
是110000次/s,写的速度是81000次/s,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,⽬前为⽌Redis⽀持的
键值数据类型如下:
字符串类型string
哈希类型hash
列表类型list
集合类型set
有序集合类型sortedset
1.3.1redis的应⽤场景
缓存(数据查询、短连接、新闻内容、商品内容等等)
聊天室的在线好友列表
任务队列。(秒杀、抢购、12306等等)
应⽤排⾏榜
⽹站访问统计
数据过期处理(可以精确到毫秒
分布式集群架构中的session分离
2.下载安装
1.官⽹:
2.中⽂⽹:
3.解压直接可以使⽤:
:配置⽂件
:redis的客户端
:redis服务器端
3.命令操作
的数据结构:
存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构
的数据结构:
1.字符串类型string
2.哈希类型hash:map格式
3.列表类型list:linkedlist格式。⽀持重复元素
4.集合类型set:不允许重复元素
5.有序集合类型sortedset:不允许重复元素,且元素有顺序
2.字符串类型string
1.存储:setkeyvalue
127.0.0.1:6379>setusernamezhangsan
OK
2.获取:getkey
127.0.0.1:6379>getusername
\"zhangsan\"
3.删除:delkey
127.0.0.1:6379>delage
(integer)1
3.哈希类型hash
1.存储:hsetkeyfieldvalue
127.0.在线押韵生成器 0.1:6379>hsetmyhashusernamelisi
(integer)1
127.0.0.1:6379>hsetmyhashpassword123
(integer)1
2.获取:
yfield:获取指定的field对应的值
127.0.0.1:6379>hgetmyhashusername
\"lisi\"
lkey:获取所有的field和value
127.0.0.1:6379>hgetallmyhash
1)\"username\"
2)\"lisi\"
3)\"password\"
4)\"123\"
3.删除:hdelkeyfield
127.0.0.1:6379>hdelmyhashusername
(integer)1
4.列表类型list:可以添加⼀个元素到列表的头部(左边)或者尾部(右边)
1.添加:
eyvalue:将元素加⼊列表左表
eyvalue:将元素加⼊列表右边
127.0.0.1:6379>lpushmyLista
(integer)1
127.0.0.1:6沉舟侧畔千帆过的解释 379>lpushmyListb
(integer)2
127.0.0.1:6379>rpushmyListc
(integer)3
2.获取:
keystartend:范围获取
127.0.0.1:6379>lrangemyList0-1
1)\"b\"
2)\"a\"
3)\"c\"
3.删除:
y:删除列表最左边的元素,并将元素返回
y:删除列表最右边的元素,并将元素返回
5.集合类型set:不允许重复元素
1.存储:saddkeyvalue
127.0.0.1:6379>saddmyseta
(integer)1
127.0.0.1:6379>saddmyseta
(integer)0
2.获取:smemberskey:获取set集合中所有元素
127.0.0.1:6379>smembersmyset
1)\"a\"
3.删除:sremkeyvalue:删除set集合中的某个元素
127.0.0.1:6379>sremmyseta
(integer)1
(integer)1
6.有序集合类型sortedset:不允许重复元素,且元素有顺序.每个元素都会关联⼀个double类型的分数。redis正是通过分数来为集合
中的成员进⾏从⼩到⼤的排序。
1.存储:zaddkeyscorevalue
127.0.0.1:6379>zaddmysort60zhangsan
(integer)1
127.0.0.1:6379>zaddmysort50lisi
(integer)1
127.0.0.1:6379>zaddmysort80wangwu
(integer)1
2.获取:zrangekeystar《滁州西涧》 tend[withscores]
127.0.0.1:6379>zrangemysort0-1
1)\"lisi\"
2)\"zhangsan\"
3)\"wangwu\"
127.0.0.1:6379>zrangemysort0-1withscores
1)\"zhangsan\"
2)\"60\"
3)\"wangwu\"
4)\"80\"
5)\"lisi\"
6)\"500\"
3.删除:zremkeyvalue
127.0.0.1:6379>zremmysortlisi
(integer)1
7.通⽤命令
*:查询所有的键
y:获取键对应的value的类型
:删除指定的keyvalue
4.持久化
是⼀个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的⽂件
中。
持久化机制:
:默认⽅式,不需要进⾏配置,默认就使⽤这种券组词 机制
1.在⼀定的间隔时间中,检测key的变化情况,然后持久化数据
1.编辑⽂件
#after900sec(15min)ifatleast1keychanged
save9001
#after300sec(5min)ifatleast10keyschanged
save30010
#after60secifatleast10000keyschanged
save6010000
2.重新启动redis服务器,并指定配置⽂件名称
1.D:JavaWeb2018day23_redis资料rediswindows-64redis-2.8.9>
:⽇志记录的⽅式,可以记录每⼀条命令的操作。可以每⼀次命令操作后,持久化数据
1.编辑⽂件
appendonlyno(关闭aof)-->appendonlyyes(开启aof)
#appendfsyncalways:每⼀次操作都进⾏持久化
appendfsynceverysec:每隔⼀秒进⾏⼀次持久化
#appendfsyncno:不进⾏持久化
客户端Jedis
Jedis:⼀款java操作redis数据库的⼯具.
使⽤步骤:
1.下载jedis的jar包
2.使⽤
//1.获取连接
Jedisjedis=newJedis(\"localhost\",6379);
//2.操作
(\"username\",\"zhangsan\");
//3.关闭连接
();
Jedis操作各种redis中的数据结构
1.字符串类型string
//1.获取连接
Jedisjedis=newJedis();//如果使⽤空参构造,默认值\"localhost\",6379端⼝
//2.操作
//存储
(\"username\",\"zhangsan\");
//获取
Stringusername=(\"username\");
n(username);
//可以使⽤setex()⽅法存储可以指定过期时间的keyvalue
(\"activecode\",20,\"hehe\");//将activecode:hehe键值对存⼊redis,并且20秒后⾃动删除该键值对
//3.关闭连接
();
2.哈希类型hash:map格式
//1.获取连接
Jedisjedis=newJedis();//如果使⽤空参构造,默认值\"localhost\",6379端⼝
//2.操作
//存储hash
(\"user\",\"name\",\"lisi\");
(\"user\",\"age\",\"23\");
(\"user\",\"gender\",\"female\");
//获取hash
Stringname=(\"user\",\"name\");
n(name);
//获取hash的所有map中的数据
Map
//keyset
Set
for(Stringkey:keySet){
//获取value
Stringvalue=(key);
n(key+\":\"+value);
}
//3.关闭连接
();
3.列表类型list:linkedlist格式。⽀持重复元素
//1.获取连接
Jedisjedis=newJedis();//如果使⽤空参构造,默认值\"localhost\",6379端⼝
//2.操作
//list存储
(\"mylist\",\"a\",\"b\",\"c\");//从左边存
(\"mylist\",\"a\",\"b\",\"c\");//从右边存
//list范围获取
List
n(mylist);
//list弹出
Stringelement1=(\"mylist\");//c
n(element1);
Stringelement2=(\"mylist\");//c
n(element2);
//list范围获取
List
n(mylist2);
//3.关闭连接
();
4.集合类型set:不允许重复元素
//1.获取连接
Jedisjedis=newJedis();//如果使⽤空参构造,默认值\"localhost\",6379端⼝
//2.操作
//set存储
(\"myset\",\"j荼蘼花花语 ava\",\"php\",\"c++\");
(\"myset\",\"java\",\"php\",\"c++\");
//set获取
Set
n(myset);
//3.关闭连接
();
5.有序集合类型sortedset:不允许重复元素,且元素有顺序
//1.获取连接
Jedisjedis=newJedis();//如果使⽤空参构造,默认值\"localhost\",6379端⼝
//2.操作
//sortedset存储
(\"mysortedset\",3,\"亚瑟\");
(\"mysortedset\",30,\"后裔\");
(\"mysortedset\",55,\"孙悟空\");
//sortedset获取
Set
n(mysortedset);
//3.关闭连接
();
jedis连接池:JedisPool
使⽤:
1.创建JedisPool连接池对象
2.调⽤⽅法getResource()⽅法获取Jedis连接
//0.创建⼀个配置对象
JedisPoolConfigconfig=newJedisPoolConfig();
Total(50);
Idle(10);
//1.创建Jedis连接池对象
JedisPooljedisPool=newJedisPool(config,\"localhost\",6379);
//2.获取连接
Jedisjedis=ource();
//3.使⽤
(\"hehe\",\"heihei\");
//4.关闭归还到连接池中
();
连接池⼯具类
publicclassJedisPoolUtils{
privatestaticJedisPooljedisPool;
static{
//读取配置⽂件
InputStreamis=ssLoader().getResourceAsStream(\"ties\");
//创建Properties对象
Propertiespro=newProperties();
//关联⽂件
try{
(is);
(is);
}catch(IOExceptione){
tackTra云海在线官方下载 ce();
}
//获取数据,设置到JedisPoolConfig中
JedisPoolConfigconfig=newJedisPoolConfig();
Total(nt(perty(\"maxTotal\")));
Idle(nt(perty(\"maxIdle\")));
//初始化JedisPool
jedisPool=newJedisPool(config,perty(\"host\"),nt(perty(\"port\")));
}
/**
*获取连接⽅法
*/
publicstaticJedisgetJedis(){
ource();
}
}
更多推荐
keyset是什么意思set在线翻译读音例句
发布评论