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

[经验分享] Redis的介绍与安装部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-9 09:13:30 | 显示全部楼层 |阅读模式
一、NoSQL介绍
1NoSQL(NoSQL =Not Only SQL ),意即不仅仅是SQL,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。

2NoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模高并发SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

3NoSQL是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如:SQL标准(增删改查)、ACID属性(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)、表结构等等,这类数据库有以下特点:非关系型的、分布式的、开源的、水平可扩展的。

4、常用的键值对:
JavaScriptJSON
JavaHashMap

5、NoSQL特点
1)处理超大量的数据
2)运行在便宜的PC服务器集群上
3)击碎了性能瓶颈

6、NoSQL适用场景
1)对数据高并发读写
2)对海量数据的高效率存储和访问
3)对数据的高可扩展性和高可用性
二、Redis介绍
1、Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。
2、和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)list(链表)set(集合)zset(sorted set --有序集合)hash(哈希类型)
3、与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步
4、这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。
5、Redis部署方案
1)目前全球最大的Redis用户是新浪微博
2)应用程序直接访问Redis数据库
3)应用程序直接访问Redis数据库,只有当Redis访问失败时才访问MySql。
6、Redis适用场合
1)取最新N个数据的操作,例如:取最新的500篇文章
2)排行榜应用,取TOPN操作
3)需要精确设定过期时间的应用
4)计数器应用
5)Uniq操作,获取某段时间所有数据排重值
6)实时系统,反垃圾系统
7)Pub/Sub构建实时消息系统,例如:发布与订阅
8)构建队列系统,例如:栈/队列
9)缓存
7、Redis的安装与部署
步骤:
1)下载:wget http://download.redis.io/releases/redis-2.8.5.tar.gz
2)编译源程序
?  tar zxvf redis-2.8.5.tar.gz
?  cd redis-2.8.5
?  make
?  cd src
?  make install
3)移动文件,便于管理
?  sudo mkdir -p /usr/local/redis/bin
?  sudo mkdir -p /usr/local/redis/etc
?  sudo mv /home/lizhanhong/javatools/redis-2.8.5/redis.conf/usr/local/redis/etc
?  cd /home/lizhanhong/javatools/redis-2.8.5/src
?  sudo mv mkreleasehdr.sh redis-benchmark redis-check-aofredis-check-dump redis-cli redis-server /usr/local/redis/bin/
4)启动Redis服务
?  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
?  Redis服务端的默认连接端口是6379
?  Mysql服务端的默认连接端口是3306
?  MongoDB服务端的默认连接端口是27017
5)客户端连接
/usr/local/redis/bin/redis-cli
6)停止Redis实例
?  方法一:/usr/local/redis/bin/redis-cli shutdown
?  方法二:pkill redis-server
?  方法三:kill -p 进程号
?  查看端口:netstat -tunpl |grep 6379
?  系统启动时开启redis服务:
在/etc/rc.local里面添加
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
7)后台启动配置
修改配置文件redis.conf里面的daemonize值为yes
8、Redis的配置
daemonize 是否以后台进程运行,默认为no
pidfile 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
bind 绑定主机IP,默认值为127.0.0.1(注释)
port 监听端口,默认为6379
timeout 超时时间,默认为300(秒)
loglevel 日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
logfile 日志记录方式,默认值为stdout
databases 可用数据库数,默认值为16,默认数据库为0
save  指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
save 900 1  900秒(15分钟)内至少有1个key被改变
save 300 10  300秒(5分钟)内至少有300个key被改变
save 60 10000  60秒内至少有10000个key被改变
rdbcompression 存储至本地数据库时是否压缩数据,默认为yes
dbfilename 本地数据库文件名,默认值为dump.rdb
dir 本地数据库存放路径,默认值为 ./
slaveof  当本机为从服务时,设置主服务的IP及端口(注释)
masterauth  当本机为从服务时,设置主服务的连接密码(注释)
requirepass 连接密码(注释)
maxclients 最大客户端连接数,默认不限制(注释)
maxmemory  设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
appendonly 是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendfilename 更新日志文件名,默认值为appendonly.aof(注释)
appendfsync 更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
vm-enabled 是否使用虚拟内存,默认值为no
vm-swap-file 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm- max-memory 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的 (Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。


运维网声明 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-21832-1-1.html 上篇帖子: Redis之java增删改查 下篇帖子: redis hash和string类型命令操作详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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