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

[经验分享] windows下和linux下 Redis 安装

[复制链接]

尚未签到

发表于 2015-7-21 12:13:53 | 显示全部楼层 |阅读模式
  Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windows版项目是由微软开放技术团队建立和维护一个实验性项目(支持32,64位),所以并不适用生产环境,但可在Windows环境下用于开发测试。
  有2个windows版本可以下载,https://github.com/dmajkic/redis/ 或https://github.com/MSOpenTech/redis。
  我下的是前者。
  安装:
  ,下载源码包,解压ZIP包后进入msvs\bin\release文件夹有三个文件分别对应32,64位,windows服务三个版本,在这里我们选择64位为例,解压redisbin64.zip 到D:\redis2.4 , 这里主要用到redis-server.exe和redis-cli.exe, redis-server用于运行Redis服务器,redis-cli是命令行客户端,通过它连接Redis服务器,并使用Redis命令进行各种操作.
  解压后大概有这些文件:
  
DSC0000.png
  redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 或jmeter工具).
将这些文件拷贝到安装你要安装redis的目录。

2.服务启动配置
  复制源码包根目录下redis.conf到D:\redis2.4,打开CMD命令提示符,输入以下命令启动redis服务
  启动:



redis-server redis.conf
  这样redis服务就启动成功了
DSC0001.png
  启动cmd窗口要一直开着,关闭后则Redis服务关闭。
这时服务开启着,另外开一个窗口进行,设置客户端:

  使用CMD命令提示符,打开redis-cli连接redis服务器 ,也可以使用telnet客户端
  # redis-cli -h 服务器 –p 端口 –a 密码



redis-cli.exe -h 127.0.0.1 -p 6379
  连接成功后,就可对redis数据增删改查了,如字符串操作
DSC0002.png
  以下是一些服务器管理常用命令:




DSC0003.gif
info   #查看服务器信息
select  #选择数据库索引  select 1
flushall #清空全部数据
flushdb  #清空当前索引的数据库
slaveof    #设置为从服务器
slaveof no one #设置为主服务器
shutdown  #关闭服务

  
  更多命令参考:http://redis.readthedocs.org/en/latest/
  配置:
  更改redis的配置需要修改redis.conf文件,以下是它一些主要的配置注释


DSC0004.gif DSC0005.gif


#是否作为守护进程运行
daemonize no
#Redis 默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile redis.log
#设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库
databases 32
#Dump持久化策略
#当有一条Keys 数据被改变是,900 秒刷新到disk 一次
#save 900 1
#当有10 条Keys 数据被改变时,300 秒刷新到disk 一次
save 300 100
#当有1w 条keys 数据被改变时,60 秒刷新到disk 一次
save 6000 10000
#当dump     .rdb 数据库的时候是否压缩数据对象
rdbcompression yes
#dump 持久化数据保存的文件名
dbfilename dump.rdb
###########    Replication #####################
#Redis的主从配置,配置slaveof则实例作为从服务器
#slaveof 192.168.0.105 6379
#主服务器连接密码
# masterauth
############## 安全性 ###########
#设置连接密码
#requirepass
############### LIMITS ##############
#最大客户端连接数
# maxclients 128
#最大内存使用率
# maxmemory
########## APPEND ONLY MODE #########
#是否开启日志功能
appendonly no
# AOF持久化策略
#appendfsync always
#appendfsync everysec
#appendfsync no
################ VIRTUAL MEMORY ###########
#是否开启VM 功能
#vm-enabled no
# vm-enabled yes
#vm-swap-file logs/redis.swap
#vm-max-memory 0
#vm-page-size 32
#vm-pages 134217728
#vm-max-threads 4
View Code   主从复制
  在从服务器配置文件中配置slaveof ,填写服务器IP及端口即可,如果主服务器设置了连接密码,在masterauth后指定密码就行了
  持久化
  redis提供了两种持久化文案,Dump持久化和AOF日志文件持久化
  Dump持久化是把内存中的数据完整写入到数据文件,由配置策略触发写入,如果在数据更改后又未达到触发条件而发生故障会造成部分数据丢失.
  AOF持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成.
  
  如何添加值到list:   





redis 127.0.0.1:6379> lpush mylist val1
(integer) 1
redis 127.0.0.1:6379> lpush mylist val2
(integer) 2
redis 127.0.0.1:6379> lpush mylist val3
(integer) 3
redis 127.0.0.1:6379> lpush mylist val4
(integer) 4
redis 127.0.0.1:6379> lrange mylist 0 -1  
1> val1  
2> val2  
3> val3
4> val4
redis 127.0.0.1:6379> rpop mylist  
"val1"




redis 127.0.0.1:6379> lpush ls1 3
(integer) 1
redis 127.0.0.1:6379> lpush ls1 1
(integer) 2
redis 127.0.0.1:6379> lpush ls1 val1
(integer) 3
redis 127.0.0.1:6379> lpush ls1 0 -1
(integer) 5
redis 127.0.0.1:6379> lrange ls1 0 -1
1) "-1"
2) "0"
3) "val1"
4) "1"
5) "3"
  redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的 ab 工具).


  • ./redis-benchmark -n 100000 –c 50  
  •     ====== SET ======  
  •     100007 requests completed in 0.88 seconds (译者注:100004 查询完成于 1.14 秒 )  
  • 50 parallel clients (译者注:50个并发客户端)  
  • 3 bytes payload (译者注:3字节有效载荷)  
  • keep alive: 1 (译者注:保持1个连接)  
  • 58.50% DOS->UNIX即可。
      2)方法
      用vim打开该sh文件,输入:
      [plain]
      :set ff
      回车,显示fileformat=dos,重新设置下文件格式:
      [plain]
      :set ff=unix
      保存退出:
      [plain]
      :wq
      再执行,竟然可以了
      3)在linux中的权限转换
      也可在Linux中转换:
      首先要确保文件有可执行权限
      #chmod u+x filename
      然后修改文件格式
      #vi filename
      三种方法都可以方便快速的解决关于Linux执行.sh文件,提示No such file or directory这个问题了。
      )
      或者参考脚本:http://blog.chinaunix.net/uid-22312037-id-3484071.html
      参考:http://www.nginx.cn/tag/redis
      发现一个更好的启动脚本:

    Ubuntu 下安装 Redis 并使用 init 脚本启动

    1、下载安装









    cd /tmp

    wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz

    tar -zxf redis-2.2.13.tar.gz

    cd redis-2.2.13

    make

    sudo make install
      这时Redis 的可执行文件被放到了/usr/local/bin

    2、下载配置文件和init启动脚本:









    wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server

    wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf

    sudo mv redis-server /etc/init.d/redis-server

    sudo chmod +x /etc/init.d/redis-server

    sudo mv redis.conf /etc/redis.conf

    3、初始化用户和日志路径
      第一次启动Redis前,建议为Redis单独建立一个用户,并新建data和日志文件夹









    sudo useradd redis

    sudo mkdir -p /var/lib/redis

    sudo mkdir -p /var/log/redis

    sudo chown redis.redis /var/lib/redis

    sudo chown redis.redis /var/log/redis

    4、设置开机自动启动,关机自动关闭









    sudo update-rc.d redis-server defaults

    5、启动Redis:









    sudo /etc/init.d/redis-server start

    6、启动client客户端连接:









    $ redis-cli

    redis> set foo bar

    OK

    redis> get foo

    "bar"
      
      
      
      
      

运维网声明 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-89066-1-1.html 上篇帖子: 基于redis的cas集群配置 下篇帖子: Redis 的Lua Script脚本功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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