• Redis 安装与配置


    背景

    为了解决公司产品数据增长过快,初始化太耗费时间的问题,决定使用redis作为缓存服务器。

    这是redis官网上原文,官方不支持windows,但是微软开放小组提供了一个windows版本的redis,仅支持64位版本。虽然可以根据需要从源代码构建32位版本。

    Windows下的安装与配置

    参考文章:http://www.runoob.com/redis/redis-install.html

    下载

    下载地址:https://github.com/MicrosoftArchive/redis/releases

    下载一个压缩包 Redis-x64-3.2.100.zip。

    安装

    然后解压到你的安装盘。比如我是解压到了F盘,所以需要先切换到F盘  

    切换到安装盘

    F:

    进入到解压完的目录

    cd Redis-x64-3.2.100-windows64

    执行启动命令

    redis-server.exe redis.windows.conf

    这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。

    切换到redis目录下运行

    redis-cli.exe -h 127.0.0.1 -p 6379

    如果ip和端口都没变也可以直接运行 redis-cli.exe。这样就打开了redis客户端了,可以执行一些命令了。

    使用

    设置键值对 set wang bo

    取出键值对 get wang

    测试安装完成,还是比较简单的。

    Linux下的安装与配置

    下载

    官网地址:https://redis.io/download

    将在官网上下载的redis压缩包redis-3.2.5.tar.gz通过ftp直接上传到了linux的site目录下。

    安装

    然后我是通过xshell5工具操作的linux。

    进入site目录下

    进行解压缩并覆盖

    解压完后site下会出现解压后的redis-3.2.5文件夹,进入到这个文件夹下

    执行make命令,对解压后的文件进行编译

    编译完之后redis-3.2.5文件夹下会出现src文件夹和 redis.conf 配置文件,src下面会有相应的命令。

    启动

    进入src目录,执行 redis-server,启动redis服务,下面是启动成功的截图

    注意:这里直接执行 redis-server 启动的Redis服务,是在前台直接运行的(效果如上图)。

    也就是说,执行完该命令后,如果Lunix关闭当前会话,则Redis服务也随即关闭(如下图所示,我点击了 Ctrl+C,Redis 服务就关闭了。 

    redis服务已经关闭,这时候我运行 redis-cli 客户端会提示无法连接。

    一般情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。

    配置

    Redis的配置主要是通过修改 redis.conf 这个文件完成的,下面的操作都是在 redis.conf 里面进行。

    更多配置可参考:Redis 配置内容总结

    (1) 把前台启动修改为后台启动:

    把daemonize no 改成 daemonize yes,表示后台启动,这个修改是为了防止启动 Redis 后直接 Ctrl+C 就会终止 Redis 运行。

    现在重新启动redis服务并加载指定的配置文件,启动成功

    (2) 修改本地访问为局域网访问:

    如果想要把只允许本地访问改成允许远程访问(局域网内),将bind 127.0.0.1改为 bind 0.0.0.0,这样的话在项目里配置的redis地址直接写的就是redis所在linux服务器的IP。

    如果改为内网IP,比如改为bind 192.168.0.2,这样内网项目访问的时候需要直接访问这里配置的IP。

    (3) 修改本地访问为外部网络访问:

    如果想要外部网络访问,注释掉bind 127.0.0.1,可以使所有的 ip 访问 redis,在 redis3.2 之后还需要把 protected-mode yes 改为 protected-mode no

    (4) 设置密码:

    # requirepass foobared,将这段代码注释去掉,设置密码,比如改成 requirepass mypassword

    修改了密码和ip之后启动客户端就需要带上ip,端口和密码了:

    命令

    更多命令请参考这篇博客:Redis 客户端命令总结

    启动redis服务

    先进入到redis安装目录下的src目录  

    cd xxxx/redis-4.0.1/src

    启动redis服务并加载指定的配置文件

    ./redis-server ../redis.conf

    连接redis客户端

    这里设置了密码,没设置的话不需要带密码

    ./redis-cli -a mypassword

    如果设置了ip地址的话,就需要带上ip,端口,密码

    ./redis-cli -h 192.168.0.1 -p 6379  -a mypassword

    客户端操作命令

    set key value   设置键值对

    get key   获取value值

    exists key   确认一个key是否存在

    keys *   查看所有的key

    del key   删除一个key

    flushdb   删除当前选择数据库中的所有key

    退出客户端

    exit

    关闭redis服务

    ps -ef|grep 6379  查看redis端口6379的进程号
    
    kill -9 xxxx  杀掉对应进程号

    遇到的问题:

    1、/bin/sh: cc: command not found

    提示gcc和cc命令令未找到。解决方法:

    yum -y install gcc gcc-c++ libstdc++-devel

    2、jemalloc/jemalloc.h: No such file or directory

    网上大部分解决办法都是错误的:

    make MALLOC=libc

    正确解决办法(针对2.2以上的版本)。清理上次编译残留文件,重新编译:

    make distclean  && make

    错误的本质是我们在开始执行 make 时遇到了错误(大部分是由于gcc未安装),然后我们安装好了gcc 后,我们再执行make ,这时就出现了jemalloc/jemalloc.h: No such file or directory。这是因为上次的编译失败,有残留的文件,我们需要清理下,然后重新编译就可以了。

    网上的解决办法虽然最后也是可以成功安装好 redis,但是是有一些隐患的,首先我们要知道 redis 需要使用内存分配器的, make MALLOC=jemalloc 就是指定内存分配器为 jemalloc ,make MALLOC=libc 就是指定内存分配器为 libc ,这个是有安全隐患的,jemalloc 内存分配器在实践中处理内存碎片是要比 libc 好的,而且在README.md 文档也说明到了,jemalloc内存分配器也是包含在源码包里面的,可以在 deps 目录下看到 jemalloc 目录。

     
  • 相关阅读:
    Opensource .NET and Mono REST Web Services framework.NET Community Content on InfoQ Servicestack
    动态软件框架开发模型图
    数据库镜像
    DDD:策略模式如何结合动态表达式
    CentOS下j2ee环境搭建
    C#代码段编辑/编译工具
    .NET平台下不借助Office实现Word、Powerpoint等文件的解析(完)
    .NET Attribute(特性)的作用与用法
    tornado开发输入输出,数据库操作,内置模板,综合示例
    基于事件的异步编程模式(EMP)
  • 原文地址:https://www.cnblogs.com/wbxk/p/6123364.html
Copyright © 2020-2023  润新知