注册 登录

清河洛

redis的简介安装及命令客户端

qingheluo2019-08-05清河洛448
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis支持字符串(string), 哈希(hash), 列表(list), 集合(set)和有序集合(SortedSet/zset)五种类型的数据结构redis中没有数字类型,数字类型是以字符串的形式存储的。官网和下载: Redis官网:https://redis.io Redis在线测试:http://try.redis.io windows下载:https://github.com/microsoftarchive/redis/r...

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。

Redis支持字符串(string), 哈希(hash), 列表(list), 集合(set)和有序集合(SortedSet/zset)五种类型的数据结构

redis中没有数字类型,数字类型是以字符串的形式存储的。

官网和下载:

    Redis官网:https://redis.io
    Redis在线测试:http://try.redis.io
    windows下载:https://github.com/microsoftarchive/redis/releases
                https://github.com/tporadowski/redis
    linux下载:http://redis.io/download

Redis的安装:

linux下首先进入安装目录下运行make编译,然后在src目录中make PREFIX=安装目录 install

    redis6版本开始需要gcc版本在5.3以上,而centos7默认安装4.8.5,可以使用gcc -v查看gcc版本
    使用yum安装gcc
    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    安装完成后运行scl enable devtoolset-9 bash临时把gcc版本换为9
    在/etc/profile文件末尾添加"source /opt/rh/devtoolset-9/enable"永久改变gcc版本
    或者直接运行echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

windows下通过程序根目录下redis-server.exe程序直接运行即可

    windows下服务的安装、启动和删除
    --service-install 安装服务
    --service-name:自定义安装服务的服务名称
    --service-start:启动服务
    --service-stop:停止服务
    --service-uninstall:删除服务
    命令:path/redis/redis-server.exe --service-install --service-name redis-service-name path/redis/redis.conf
    或者:sc create redis-service-name binPath= "path/redis/redis-server.exe --service-run path/redis/redis.conf" DisplayName= "Redis" start= auto depend= TCPIP

Redis程序文件:

linux下为安装目录下的src目录,windows下为程序根目录

    redis-server[.exe]:启动redis服务
    redis-cli[.exe]:Redis命令客户端
    redis-benchmark[.exe]:Redis测试工具
    redis-check-aof[.exe]:AOF文件修复工具
    redis-check-dump[.exe]:RDB文件检查工具
    redis-sentinel:Sentinel服务器,哨兵模式监视服务器(仅linux下有)
    redis[.windows].conf:配置文件

启动redis服务

redis-server[.exe]) 配置文件

–-port 端口号 指定服务的端口号

--loglevel verbose:指定服务运行的日志记录等级

--slaveof ip port:指定主服务器ip和端口

    Linux中启动服务常见的3个错误:
    1、you have Transparent Huge Pages (THP) support enabled...
    在文件/etc/rc.d/rc.local中添加:
if test -f /sys/kernel/mm/redhat_transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
fi
    然后设置改文件可执行权限chmod 755 /etc/rc.d/rc.local
    2、The TCP backlog setting of 511 cannot be enforced because...
        设置socket监听(listen)的backlog上限,在配置文件/etc/sysctl.conf中添加配置项net.core.somaxconn
        推荐设置为net.core.somaxconn=1024
        backlog是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。
        而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。
        当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。
        net.core.somaxconn限制接收新TCP连接侦听队列的大小。
    3、overcommit_memory is set to 0! Background save may fail...
        设置内存分配策略,在配置文件/etc/sysctl.conf中添加配置项vm.overcommit_memory
        该配置项可选值为0,1,2,推荐设为vm.overcommit_memory=1
        0表示内核将检查是否有足够的可用内存供应用进程使用,如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
        1表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
        2表示内核允许分配超过所有物理内存和交换空间总和的内存
    4、添加redis端口到防火墙
        firewall-cmd --zone=public --permanent --add-port=6379/tcp
        firewall-cmd --reload

Redis命令客户端(redis-cli[.exe])的使用参数:

redis-cli[.exe]命令用于启动redis的命令交互客户端,在redis中命令不区分大小写。启动命令交互客户端时的常见参数:

    -h:指定连接的主机地址(默认127.0.0.1)
    -p:指定连接的端口号(默认6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字)
    -s:指定连接的socket套接字(host:prot),windows不支持
    -a:指定连接到服务器时使用的密码
    -r:执行指定的命令的次数
    -i:使用-r时,每个命令等待的秒数
    -n:数据库编号
    -x:从stdin(标准输入)读取最后一个参数
    -d:指定分隔符(默认)
    -c:启用群集模式(遵循-ask和-moved重定向)
    --raw:使用原始格式输出(有时出现中文乱码时使用该选项)
    --no-raw:即使stdout不是tty,也强制格式化输出
    --csv:以csv格式输出
    --stat:打印有关服务器的滚动状态:mem、客户机等信息
    --latency:进入特殊模式连续采样延迟
    --slave:模拟从系统,显示从主系统接收到的命令
    --rdb :将RDB转储从远程服务器传输到本地文件
    --pipe:将原始redis协议从stdin(标准输入)传输到服务器
    --pipe-timeout  :在--pipe模式下,如果在发送完所有数据后终止或在秒内未收到回复会出错,默认30,使用0永久等待
    --scan:使用scan命令列出所有键
    --pattern :与--scan一起使用可以指定扫描模式
    --intrinsic-latency :运行指定的秒数的测试以测量内部系统延迟。
    --eval :使用上的lua脚本发送eval命令
    --help:获取帮组信息并退出
    --version:获取版本信息并退出


网址导航