设为首页 收藏本站
查看: 784|回复: 0

[经验分享] Redis简介

[复制链接]

尚未签到

发表于 2015-7-21 09:52:34 | 显示全部楼层 |阅读模式
1. Redis简介

        随着互联网尤其是Web2.0技术的迅猛发展,每个网民都成为信息发布者和消费者。Web服务器中的数据存储量呈爆炸增长趋势,而单位时间内Web服务器接收的访问请求也在逐步增加。这对后台数据库处理大规模数据和应对高并发访问的能力,提出越来越高的要求。传统的关系数据库由于其固有缺陷难以有效支持新型Web应用。
        NoSQL数据库作为一类新型非关系数据库,具有高性能、高效存储、高可用性和高可扩展性等诸多优势。它结构简单,读写效率高,支持服务器集群,能够处理海量数据,可以应对高并发访问。NoSQL数据库打破了关系数据库的垄断局面,被广泛应用于各种大型Web应用。目前,NoSQL数据库有大量商业实现,如:Google的BigTable,Amazon的Dynamo 等等。除此之外,NoSQL数据库也有一些开源实现,如:Redis,Memcached,HBase等等。
       Redis是一种开源的基于Key-Value的轻量级NoSQL数据库。该项目使用BSD授权协议,由Salvatore Sanfilippo于2009年发起,最新的稳定版本为2.4.0。Redis用C语言编写而成,源代码仅4万行左右,编译后二进制文件不到1M,能够方便地嵌入到各种应用环境。麻雀虽小,五脏俱全。Redis除支持基本的针对Key-Value的Get/Set操作外,还具备若干实用的新特性。
Redis中的Value不仅能够存储String类型,还能存储List,Set,Sorted Set和Hash四种常见的数据结构,并提供针对这些数据结构的操作原语,这为开发人员提供了极大便利,能够有效减少网络数据传输量。Redis也被称为“数据结构服务器”。
        Redis支持Master/Slave集群。集群中有一台Master服务器,其下可以挂载若干Slave服务器,而Slave服务器下还可挂载若干Slave服务器,每个Slave服务器都是Master服务器的镜像。读操作可以负载均衡到各个服务器上并行执行。写操作则先阻塞各Slave服务器,然后在Master服务器上执行,最后把修改传播到各Slave服务器并解除阻塞。
       Redis支持内存数据持久化。它能够把内存中存储的数据按照一定策略写入硬盘文件,并通过读取硬盘文件重建内存数据。这能够在一定程度上缓解服务器崩溃导致的数据丢失问题。Redis支持Snapshotting和AOF两种持久化方法:前者能够导出完整镜像文件,相当于完全备份;后者则在日志文件中记录每个写操作,相当于增量备份。
        Redis实现了独立于操作系统的Virtual Memory管理系统,能优化系统运行效率。Redis还支持Pipelining批处理,能提高系统吞吐量。
        Redis的诸多优点吸引了大批开发人员,它被广泛地应用于各种NoSQL数据库适用的场合,譬如程序员问答社区StackOverFlow就使用Redis作为缓存服务器。
        下面将详细介绍Redis的安装和使用方法。2. Redis安装配置
a) Redis安装     

获取Redis     

1,官网下载:http://www.redis.io/download     

2,笔者使用的Redis下载:     

Redis安装文件解压后,有以下几个文件。见下图   

   

redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).      

在解压好redis的安装文件后,还需要在redis根目录增加一个redis的配置文件redis.conf     

因内容范围及篇幅有限,此处不详细讲解redis.conf      

此处不讲解命令行方式启动,直接双击redis-server.exe启动Redis服务程序

b)根据BizFoundation教程创建BizFoundation工程,在工程中加入jar包,在程序中嵌入Redis代码        

jredis-1.0-rc2.jar下载处--->
        关键代码如下:


  • private static JRedis jredis = new JRedisClient("127.0.0.1", 6379);
复制代码      初始化客户端实例,构造函数包含两个参数,              

       一个"127.0.0.1",Redis服务器端IP,           

       一个6379,Redis服务器端口号   

       实例化客户端后,即可开始应用,此处的jredis实例类似于普通jdbc的connection,同时也具有类似于hashmap的功能      

BizFoundation程序关键代码:
1,显示列表代码



  • public void listCode(Page page,Code code) throws RedisException {
  •                 page = codeService.findByPage(code, page);//此处将数据库中查出的数据以id为key,存于jredis中
  •                 List list = page.getResult();
  •                 for(int i =0;i

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88959-1-1.html 上篇帖子: redis缓存技术学习 下篇帖子: redis源码笔记-dict.h
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表