redis的使用(一)概述

redis概述、安装和启动

一、NOSQL
    在构建诸如搜索引擎、游戏服务器等大型互联网应用以及提供云计算服务的时候, 怎样保证系统在海量数据环境下的高性能、高可靠性、高扩展性、高可用性、低成本成为所有系统架构们挖苦心思考虑的重点,而怎样解决数据库服务器的性能瓶颈是最大的挑战。
    对于传统的数据库,所有的数据持久在硬盘上,所有的操作都是通过IO的方式读写,效率相对较低,而对于大型的互联网企业,每时每刻都有无数的用户在使用它们提供的互联网服务,这些服务带来的就是大量的数据吞吐量,在同一时间,会并发的有成千上万的连接对数据库进行操作。在这种情况下,单台服务器或者几台服务器远远不能满足这些数据处理的需求,简单的升级服务器性能这样的扩展的方式也不行。此时采用的扩展方式是,将原来的DBMS系统进行垂直和水平的切割,将数据库部署到一个集群上,这样的优势在于我们熟悉RDBMS技术,但是缺点就是它针对于特定应用,不同的应用切割方法可能不太一样。使用比较麻烦。
    还有一类就是google采用的方法,抛弃RDBMS,采用key-value形式存储,可以极大的增强系统的可扩展性。如果要处理的数据持续增大,多加机器就可以了。这种数据库将所有的数据都存储在内存中,内存的读写效率远大于硬盘因此在性能上存在很大优势,但是内存空间丢失,数据就会丢失,不过现在都提供对于持久化的支持。但是key=value存储结构简单,对于复杂关系映射就不能提供很好的支持。
    Redis就是这种数据库中的一种。
    
二、Redis简介
    Redis是完全开源免费的一个高性能的key-value【内存】数据库。
    Redis 有三个主要使其有别于其它很多竞争对手的特点(redis的操作和memcached的操作最为相似,不过memcached不提供持久化):
    Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的,在重启的时候可以再次加载使用;
    Redis相比许多键值数据存储系统有相对丰富的数据类型;
    Redis可以将数据复制到任意数量的从服务器中;

三、Redis优点

    异常快速 :
        Redis是非常快的,每秒可以执行大约110000设置操作,81000个/每秒的读取操作。
        相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给 Redis 带来了非常优秀的性能。读写操作之间有显著的性能差异。

    支持丰富的数据类型 :
        Redis支持最大多数开发人员已经知道如列表,集合,可排序集合,哈希等数据类型。这使得在应用中很容易解决各种问题,因为我们知道哪些问题处理使用哪种数据类型更好解决。

    操作都是原子的 :
        所有 Redis 的操作都是原子,从而确保当两个客户同时访问 Redis 服务器得到的是更新后的值(最新值)。
    持久性:
        通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用截图的方式,将内存中的数据不断写入磁盘;或使用类似 MySQL 的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。
        
    丰富的特性
        Redis还支持 publish/subscribe(发布/订阅模式), 通知, key值过期等等特性。

四、redis安装

windows下下载后解压缩即可

linux需先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++

五 、redis启动

1.前端启动:直接运行bin/redis-server,前端模式启动的缺点是命令窗口关闭则redis-server程序结束

2.后端启动:修改redis.conf配置文件, daemonize yes 以后端模式启动。

执行如下命令启动redis:./bin/redis-server ./redis.conf

其他参数:

 

  1. bind 127.0.0.1
        指定 Redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项   
   2.port
        监听端口,默认为 6379
   3. timeout
        设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接.设置为0就是关闭该功能
        例如: timeout 100 client一秒内没有请求,关闭  timeout 0 关闭此功能
   4.loglevel
        log 等级分为 4 级,debug, verbose, notice, 和 warning。生产环境下一般开启 notice(默认值)  loglevel notice
   5.logfile
        配置 log 文件地址,默认使用标准输出,即打印在命令行终端的窗口上
   6.databases
        设置数据库的个数,可以使用 SELECT <dbid>命令来切换数据库。默认使用的数据库是 0
        一个redis实例提供了多个用来存储数据的数据库,客户端可以指定将数据存储在哪个库中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似。
        每个数据库对外都是以一个从0开始的递增数字命名,redis默认支持16个数据库,可以通过配置参数databases来修改这个数字。客户端与redis建立连接后会自动选择0号数据库,不过可以随时使用select命令更换数据库,然而这些以数字命名的数据库又与我们理解的数据库有所区别。Redis不支持自定义数据库名字,每个数据库都以编号命名,开发者必须自己记录哪些数据库存储了哪些书库,另外redis也不支持为每个数据库设置不同的访问密码,所以一个客户端要么访问全部数据库,要么一个也不能访问。而且多个数据库之间并不是完全隔离的,比如flushall命令可以清空一个redis实例中所有的数据库中的数据。所以这些数据库更像是一种命名空间,而不适宜存储不同应用程序的数据。由于redis非常轻量级,一个空redis实例占用的内存只有1mb左右,所以不用担心多个redis实例会额外占用很多内存。
        例如:databases 16
        此时可以选择的数据库的编号从0---15,客户端可以输入命令:select 0--15 选择要使用的数据库。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值