码迷,mamicode.com
首页 > 其他好文 > 详细

Redis学习笔记(简单了解与运行)

时间:2016-04-18 17:21:41      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

Redis学习笔记(简单了解与运行)

开源的非关系型数据库 是REmote Dictionary Server(远程字典服务器)的缩写,以字典结构存储数据

允许其他应用通过TCP协议读写字典中的内容.

Redis支持存储的键值数据类型

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

Redis的特性

通过一个列子看出Mysql和Redis的存储区别

例如:

(存储一篇文章,文章包括:标题(title),正文(content),阅读量(views),标签(tags))

需求:

把数据存储在数据库中,并且可以通过标签检索出文章

关系型数据库实现:

把标题,正文,阅读量 存储在一个表中(文章表)

标签存储在一个表中(标签表)

通过第三个表对应表(对应表)

缺点:查询时需要把3个表进行连接,不是很直观

Redis实现:

post{"title"} = "Hello World!"

post{"content"} = "我是文章 , 我是文章"

post{"views"} = 0

post{"tags"} = {"Java","Redis"}


优点:可以将程序中的数据直接映射到Redis中,数据在Redis中的存储方式和在程序中的存储方式很相近.

对不同的数据类型提供了方便的操作方式

内存存储以及持久化

Redis数据库中的数据都存储在内存中.内存的读取速度快于硬盘读取,所以Redis在性能对比上于基于硬盘读取的数据库有明显的优势

将数据存储在内存中也会出现问题,程序退出后,内存中的数据就会丢失
不过可以使用Redis的持久化技术来解决,可以将数据异步写入到硬盘中,而且不会影响继续提供服务.

其他功能

Redis还可以用做缓存,队列系统等

Redis可以为每个键设置生存时间(Time to Live ,TTL),生存时间到了键会自动被删除.这一功能Redis可以作为缓存系统来使用.

作为缓存系统,Redis还可以限定内存最大占用空间,当数据到达最大限定值时,Redis可以按照规则淘汰不需要的键.

Redis的列表类型可以用来实现队列.支持阻塞读取,可以实现一个高性能的优先级队列. 

更高层面上,Redis还支持"订阅/发布"的消息模式,可以基于此构建聊天室等系统.

简单稳定

Redis提供了一百多个命令

Redis提供了不同语言的客户端库

安装Redis

Redis兼容大部分系统,Linux Windows  OS X 等

一般都是在Linux服务器上安装,记录在Linux上安装的过程

下载、提取和编译:
$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz
$ tar xzf redis-3.0.7.tar.gz
$ cd redis-3.0.7
$ make

实际运行redis前可以使用make test来测试Redis是否编译正确

Redis可执行文件说明

文件名                     说明

redis-server                Redis服务器

redis-cli               Redis命令行客户端

redis-benchmark         Redis性能测试工具

redis-check-aof         AOF文件修复工具

redis-check-dump            RDB文件检查工具

常用的是redis-server和redis-cli.启动redis使用的就是redis-server,  redis-cli是命令行客户端

启动Redis

有两种启动方式:

        1.直接启动:

            直接运行redis-server

        redis服务器默认的端口是6379端口,可以自定义接口:

            redis-server --port 6370

        2.通过初始化脚本启动

            通过初始化脚本启动,可以使redis随系统的启动而启动,生产环境使用此方法.

            在Redis的源代码目录的untils文件夹中有一个redis_init_script的初始化脚本

            需要配置Redis的运行方式和持久化文件,日志文件的存储位置等:    

                (1)配置初始化脚本,把初始化脚本复制到/etc/init.d目录中,文件名为redis_端口号,然后修改脚本第6行的REDISSPORT变量的值为同样的端口号

                (2)建立需要的文件夹
                    /etc/redis    存放redis的配置文件
                    /var/redis/端口号   存放redis的持久化文件

                (3)修改配置文件.首先将配置文件模板(根目录下)复制到/etc/redis文件夹中,以端口号命名(如6370.conf),然后进行编辑

                    启用配置文件的方法是在启动时将配置文件的路径作为启动参数传递给redis-server如:

                        redis-server /path/to/redis.conf

                    通过启动参数传递同名的配置选项会覆盖配置文件中相应的参数:

                        redis-server /path/to/redis.conf --loglevel warning

                    Redis还可以在运行时动态修改配置文件:

                        CONFIG SET loglevel warning

                    也可以获取Redis当前的配置情况

                        CONFIG GET loglevel

                    配置文件的参数:

                        参数             值                                     说明   
                        daemonize       yes                             以守护进程模式运行
                        pidfile       /var/run/redis_端口号.pid            redis的PID文件位置
                        port           端口号                          设置redis的端口号
                        dir           /var/redis/端口号                    设置持久化文件夹位置

            使用/etc/init.do/redis_端口号 start 启动Redis

       如果无法启动还需要把 src下的 redis-server和redis-cli 复制到 /usr/local/bin下 执行:sudo update-rc.d redis_端口号 default 可以随系统启动

       客户端连接 redis-cli -h 主机地址 -p redis端口

停止Redis

考虑到持久化,强制关闭Redis可能会丢失数据,所以正确停止Redis的方法为

redis-cli SHUTDOWN

当redis收到SHUTDOWN命令后,会先断开所有的客户端连接,然后根据配置执行持久化,最后完成退出

也可以使用 kill redis的进程PID 关闭redis

Redis学习笔记(简单了解与运行)

标签:

原文地址:http://www.cnblogs.com/TerrySunShine/p/5404863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!