当前位置: 首页 > news >正文

Redis 简介和安装

简介

Redis官网:http://www.redis.io
Redis(REmote DIctionary Server)是一个开源的高性能键值对(key-value)数据库。
它以字典结构存储数据,并允许其它应用通过tcp协议读取字典中的内容。
Redis键值数据类型:字符串类型、散列类型、列表类型、集合类型、有序集合类型。
Redis中的数据存储在内存中,读写速度远快于硬盘,在一台普通的电脑上Redis一秒内读写超过10w个键值,同时Redis支持数据持久化,即可以将内存中的数据异步写入硬盘中去,同时不影响继续提供服务。
Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件
Redis可以设置每个键的生存时间(Time To Live,TTL),生存时间到期后会自动被删除,所以Redis可以作为缓存来使用。
Redis和Memcached比较:性能上Redis是单线程模型,而Memcached支持多线程,所以在多核服务器上Memcached的性能更高些,但Redis性能很优异了,大部分场合下其性能不会成为瓶颈;功能上Redis支持高级的数据类型或者持久化等功能, 很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash, 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。
作为缓存系统,Redis还可以设置限定数据占用的最大内存空间,超过限制后按照一定规则自动淘汰不需要的键。
Redis的列表类型键可以用来实现队列,并支持阻塞式读取,可以很容易实现一个高性能优先队列。

安装

Redis最新稳定版本可以从官网提供的地址下载:
http://www.redis.io/download

[1453988350086029054.png]

下面演示在linux下安装

下载Redis安装包
wget http://download.redis.io/releases/redis-3.0.6.tar.gz

[1453988350228035822.png]

解压
tar xzf redis-3.0.6.tar.gz
编译
cd redis-3.0.6/
make

[1453988350272061435.png]

编译成功后,会看到系统推荐用make test命令测试redis是否编译正确。
cd redis-3.0.6/src/
make test

出现以下错误:
You need tcl 8.5 or newer in order to run the Redis test
make: * [test] Error 1

缺少包,输入下面命令安装
yum install tcl

[1453988351695024679.png]

最后再输入make test 测试ok通过。

执行src目录下./redis-server就可以启动并运行redis,默认服务在6379端口上监听连接请求
src/redis-server

[1453988351867029078.png]

打开另外一个终端运行,redis客户端
redis-cli
127.0.0.1:6379> set name lindl
OK
127.0.0.1:6379> get name
“lindl”
127.0.0.1:6379> exit
这样就安装成功了。
注意:要远程访问它,还需要开启防火墙。不要使用Ctrl+C,这样会使程序退出。

简单介绍src目录下的几个可执行命令

redis-server Redis服务器(常用,启动并运行Redis)
redis-cli Redis命令行客户端(常用)
redis-benchmark Redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-dump RDB文件检查工具

直接启动:通过redis-server可以启动redis,默认使用6379端口,如果要换端口可以通过–port 参数自定义端口号,如:redis-server –port 6380

通过初始化脚本启动:可以修改utils文件下的redis_init_script初始化脚步文件

!/bin/sh

#

Simple Redis init.d script conceived to work on Linux systems

as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_ REDISPORT.pidCONF=/etc/redis/ {REDISPORT}.conf”

case “ 1instart)if[f PIDFILE ]
then
echo “ PIDFILEexists,processisalreadyrunningorcrashedelseechoStartingRedisserver EXEC CONFfi;;stop)if[!f PIDFILE ]
then
echo “ PIDFILEdoesnotexist,processisnotrunningelsePID= (cat PIDFILE)echoStopping CLIEXEC -p REDISPORTshutdownwhile[x/proc/ {PID} ]
do
echo “Waiting for Redis to shutdown …”
sleep 1
done
echo “Redis stopped”
fi
;;
*)
echo “Please use start or stop as first argument”
;;
esac

Linux服务开机启动Redis需要配置运行方式、持久化文件、日志文件的存储位置等,具体分3步来实现:
1、将初始化脚本复制到/etc/rc.d/init.d目录,文件名为redis_监听端口号
cp utils/redis_init_script /etc/rc.d/init.d/redis_6379
vim redis_6379
在第二行加入下面代码

chkconfig: 2345 80 90

2、建立需要的文件夹
存放redis的配置文件
mkdir /etc/redis
存放redis的持久化文件
mkdir /var/redis
mkdir /var/redis/6379

3、复制并修改配置文件
cp redis.conf /etc/redis/6379.conf
vim /etc/redis/redis.conf
编辑以下参数并保存(vim命令可以通过/来查找字符)

daemonize yes 使用redis以守护进程的模式运行
pidfile /var/run/redis_6379.pid 设置redis的PID文件位置
port 6379 设置Redis监听的端口号
dir /var/redis/6379 设置吃就会文件存放位置

设置好了可以使用/etc/rc.d/init.d/redis_6379 start启动Redis出现画面:
Starting Redis server…
然后需要执行下面的命令使Redis随系统自动启动:
chkconfig –add redis_6379
重启测试下
src/redis-cli shutdown
service redis_6379 start
Starting Redis server…

@注意:
本文由东亮博客提供
如需转载,烦请注明出处:http://www.lindongliang.cn/news94
有任何问题可以留言!

相关文章:

  • org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
  • Java基础笔记1-计算机基础
  • windows下JDK安装和配置
  • nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolC
  • 警告:不能读取 AppletViewer 的属性文件
  • JDK目录结构
  • IIS8.0, IIS7.0提示“请求筛选模块被配置为拒绝包含双重转义序列的请求”处理办法
  • linux、windows中ping大数据包的命令格式
  • IIS7中的自定义 404页面错误- 500.19
  • 关于struts2中action请求会执行两次的问题
  • 解决Mac OS lion下(ubuntu等linux也一样)启动tomcat的Cannot find ./catalina.sh 的问题
  • Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
  • 记录下mybatis中#{}和${}传参的区别
  • eclipse 内存不够用报错Internal Error
  • eclipse编译校验JS卡死解决办法
  • Android 架构优化~MVP 架构改造
  • Consul Config 使用Git做版本控制的实现
  • ES6简单总结(搭配简单的讲解和小案例)
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • flutter的key在widget list的作用以及必要性
  • iOS 系统授权开发
  • JDK 6和JDK 7中的substring()方法
  • k8s如何管理Pod
  • MD5加密原理解析及OC版原理实现
  • TypeScript实现数据结构(一)栈,队列,链表
  • 百度小程序遇到的问题
  • 给新手的新浪微博 SDK 集成教程【一】
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于组件的设计工作流与界面抽象
  • 开源地图数据可视化库——mapnik
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 区块链技术特点之去中心化特性
  • 自动记录MySQL慢查询快照脚本
  • kubernetes资源对象--ingress
  • Linux权限管理(week1_day5)--技术流ken
  • 整理一些计算机基础知识!
  • ​520就是要宠粉,你的心头书我买单
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • (k8s中)docker netty OOM问题记录
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (接口自动化)Python3操作MySQL数据库
  • (强烈推荐)移动端音视频从零到上手(下)
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)VC++中ondraw在什么时候调用的
  • .htaccess配置常用技巧
  • .net 4.0发布后不能正常显示图片问题
  • .NET Micro Framework 4.2 beta 源码探析
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET Standard 的管理策略
  • .net 无限分类
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题