查看“Redis:下载安装”的源代码
←
Redis:下载安装
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Redis]] == 下载安装 == === 下载 === 官网:“https://redis.io/” # Linux:“wget http://219.238.7.66/files/502600000A29C8D5/download.redis.io/releases/redis-3.2.9.tar.gz” # windows:“https://github.com/MSOpenTech/redis/releases” === 安装 === # 解压:tar -zxvf redis-3.2.9.tar.gz # 切换目录: cd redis-3.2.9,执行命令:make # 将 src下的可执行文件复制到/usr/local/bin 目录下,再执行 make install === '''配置''' === 查看和修改Redis的配置项,有两种方式: # 是通过'''配置文件'''查看和修改; #* “'''redis.conf'''”是 Redis 的配置文件; #* redis 默认为 '''16''' 个库(默认自动使用 '''0''' 号库); # 是通过'''配置命令'''查看和修改。 #: <syntaxhighlight lang="bash" highlight=""> # 查看配置 CONFIG GET <CONFIG_SETTING_NAME> # 修改配置 CONFIG SET <CONFIG_SETTING_NAME> <NEW_CONFIG_VALUE> </syntaxhighlight> #* 不区分字母大小写 #* 支持通配符 Redis 的配置项比较多,常用项说明大致如下:(“redis.conf”文件中已有全部的配置内容和说明) # '''port''':端口配置项,查看和设置Redis监听端口,默认端口为 '''6379'''。 # '''bind''':主机地址配置项,查看和绑定的主机地址,默认地址的值为 127.0.0.1。 #* 这个选项,在单网卡的机器上,一般不需要修改。 # '''timeout''':连接空闲多长要关闭连接,表示客户端闲置一段时间后,要关闭连接。 #* 默认值为0,表示默认不限制连接的空闲时长。 # '''dbfilename''':指定保存缓存数据库的本地文件名。 #* 默认值为 '''dump.rdb'''。 # '''dir''':指定保存缓存数据的本地文件所存放的目录。 #* 默认值为安装目录。 # '''rdbcompression''':指定存储至本地数据库时是否压缩数据。 #* 默认为yes,Redis采用 LZF 压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变得巨大。 # '''save''':指定在多长时间内,有多少次 Key-Value 更新操作,就将数据同步到本地数据库文件。 #* save配置项的格式为“'''<syntaxhighlight lang="bash" inline>save <seconds> <changes></syntaxhighlight>'''”:seconds表示时间段的长度,changes表示变化的次数。如果在seconds时间段内,变化了changes次,则将Redis缓存数据同步到文件。 #: 如:设置为900秒(15分钟)内有1个更改,则同步到文件: #: <syntaxhighlight lang="bash" highlight=""> 127.0.0.1:6379> config set save "900 1" OK 127.0.0.1:6379> config get save 1) "save" 2) "jd 900" </syntaxhighlight> #: 如:设置为900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改,三者满足一个条件,则同步到文件: #: <syntaxhighlight lang="bash" highlight=""> 127.0.0.1:6379> config set save "900 1 300 10 60 10000" OK 127.0.0.1:6379> config get save 1) "save" 2) "jd 900 jd 300 jd 60" </syntaxhighlight> # '''requirepass''':设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过“'''<syntaxhighlight lang="bash" inline>AUTH <password></syntaxhighlight>'''”命令提供密码,默认这个选项是关闭的。 # '''slaveof''':在主从复制的模式下,当前节点为 slave(从)节点时,此项用于设置 master(主)节点的IP地址及端口,在 Redis 启动时,它会自动从 master(主)节点进行数据同步。 #* 如果已经是 slave(从)服务器,则会丢掉旧数据集,从新的master主服务器同步缓存数据。 #* 设置为 slave 节点命令的格式为:“'''<syntaxhighlight lang="bash" inline>slaveof <masterip> <masterport></syntaxhighlight>'''” # '''masterauth''':在主从复制的模式下,当 master(主)服务器节点设置了密码保护时,配置 slave(从)服务器连接 master(主)服务器所用的密码。 #* master服务器节点设置密码的格式为:“'''<syntaxhighlight lang="bash" inline>masterauth <master-password></syntaxhighlight>'''” # '''databases''':设置缓存数据库的数量,默认数据库数量为 '''16''' 个。这16个数据库的 id 为 0-15,默认使用的数据库是第 0 个。 #* databases配置选项,可以设置多个缓存数据库,不同的数据库存放不同应用的缓存数据。 #* 可以使用“'''<syntaxhighlight lang="bash" inline>SELECT <dbid></syntaxhighlight>'''”命令在连接时通过数据库id来指定要使用的数据库。 #* 在Java编程中,配置连接 Redis 的 uri 连接字符串时,可以指定到具体的数据库,格式为: #*: <syntaxhighlight lang="bash" highlight=""> redis://用户名:密码@host:port/Redis库名 </syntaxhighlight> #*: 如下,表示连接到第 2 个Redis缓存库:(其中的用户名是可以随意填写的) #*: <syntaxhighlight lang="bash" highlight=""> redis://testRedis:foobared@119.254.166.136:6379/1 </syntaxhighlight> === 启动 === (切换到 redis-3.2.9/src/ 目录执行命令) * 后台启动:“./redis-server & ” * 后台启动并输出日志到nohup.out文件:“nohup /usr/local/redis-3.2.9/src/redis-server &” === 关闭 === 切换到 redis-3.2.9/src/ 目录执行:“./redis-cli shutdown” *(直接结束进程:kill pid 或者 kill -9 pid) == 安全 == 以下都是在配置文件“'''redis.conf'''”中进行修改。 === 设置密码 === 通过以下命令查看是否设置了密码验证: <syntaxhighlight lang="properties"> 127.0.0.1:6379> CONFIG get requirepass 1) "requirepass" 2) "" </syntaxhighlight> * 默认情况下 requirepass 参数是空的。 可以通过两种方式设置密码: # 配置文件: #: <syntaxhighlight lang="properties"> requirepass 123456 </syntaxhighlight> # 命令: #: <syntaxhighlight lang="properties"> 127.0.0.1:6379> CONFIG set requirepass "runoob" OK </syntaxhighlight> * 因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。 可以通过两种方式使用密码: # 启动时: #: <syntaxhighlight lang="properties"> redis-cli -h 127.0.0.1 -p 6379 -a 123456 </syntaxhighlight> # 连接时: #: <syntaxhighlight lang="properties"> AUTH 123456 </syntaxhighlight> === 绑定ip === 配置文件中: <syntaxhighlight lang="properties"> # bind 127.0.0.1 </syntaxhighlight> # 取消 ip 绑定注释(去掉 #), # 修改“127.0.0.1”为允许访问 redis 服务器的ip地址: === 禁用命令、重命名命令 === 配置文件中: <syntaxhighlight lang="properties"> rename-command FLUSHALL oyfekmjvmwxq5a9c8usofuo369x0it2k # 重命名FLUSHALL命令 rename-command FLUSHALL "" # 禁用FLUSHALL命令 rename-command FLUSHDB "" # 禁止FLUSHDB命令 rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # 重命名CONFIG命令 rename-command CONFIG "" # 禁止CONFIG命令 </syntaxhighlight> * 对于禁用“FLUSHALL”命令,需要保证“appendonly.aof”文件没有 flushall 命令,否则服务器无法启动; === 修改默认端口 === 配置文件中: <syntaxhighlight lang="properties"> port 6379 </syntaxhighlight> * 修改 redis 的端口,这一点很重要,使用默认的端口很危险; == 客户端 == === 命令行客户端 === # '''redis-cli'''(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,用于与服务端交互,我们可以使用该客户端来执行redis的各种命令。 #* 直接连接redis (默认ip127.0.0.1,端口'''6379'''):“./redis-cli” #* 指定IP和端口连接redis:“./redis-cli -h 127.0.0.1 -p 6379” === 远程客户端 === #'''Redis Desktop Manager''' #* 官网:https://redisdesktop.com/ #* 远程连接redis需要修改redis主目录下的“redis.conf”配置文件: #*# “bind ip”绑定ip注释掉; #*# “protected-mode yes”保护模式改为no; # '''phpRedisAdmin''' #*(需要本地安装php运行环境) === 编程客户端(Java) === 使用它提供的 API 就能访问服务器上的 redis 并对它进行各种操作。(类似于数据库驱动) # '''Jedis''',redis的Java编程客户端,Redis官方首选推荐使用 Jedis,它是一个很小但很健全的 redis 的 java 客户端 #* jedis 完全兼容redis 2.8.x and 3.x.x #* Jedis 源码:https://github.com/xetorthio/jedis #* api 文档:http://xetorthio.github.io/jedis/ # '''Lettuce''':可伸缩线程安全的Redis客户端。多个线程可以共享同一个“RedisConnection”。它利用优秀netty NIO框架来高效地管理多个连接。 #* Lettuce 源码:https://github.com/lettuce-io/lettuce-core * redis 的其他编程语言客户端:C、C++、C#、Erlang、Lua、Objective-C、Perl、PHP、Python、Ruby、Scala、Go,等40多种语言都有连接redis的编程客户端;
返回至“
Redis:下载安装
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息