写在前面
本篇博客是个人学习笔记性质的,内容基本来自于菜鸟教程。
所以大佬可绕行,新人可前往菜鸟教程(我真没给菜鸟教程打广告)或查看其他人博客学习
当然了如果一定要看我的,也没人拦着:)
一、下载安装
1.Windows下载
(1)下载
(2)启动
redis-server.exe [conf]
conf是配置文件,可选,不设置则选取默认值
2.Linux下载
(1)下载
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzf redis-2.8.17.tar.gz
cd redis-2.8.17
make
(2)启动
cd /path/to/redis/src
redis-server
3、MacOS安装redis以及启动的命令
brew install redis
brew services start redis
二、连接redis
1.在命令行中打开客户端:
redis-cli
2.连接远程的客户端:
redis-cls -h <host> -p <port> -a [password]
说明:host 是要登陆的主机ip,port是该主机redis监听的端口,password是使用redis的密码,没有可以不填
三、配置(先通过客户端连接redis才能查看/修改配置)
1.配置文件位置
配置文件在redis的安装目录下,文件名为redis.conf(windows系统下的名字为redis.windows.conf)
2.查看配置
可以使用CONFIG GET查看配置项: COONFIG GET <config_setting_name>
eg:
redis-cli
redis 127.0.0.1:6379> CONFIG GET loglevel
结果:
1) "loglevel"
2) "notice
需要注意的是*可以匹配所有的配置,eg:
redis 127.0.0.1:6379> CONFIG GET *
结果:
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "cluster-announce-ip"
8) ""
9) "unixsocket"
10) ""
11) "logfile"
12) ""
13) "pidfile"
14) "/var/run/redis_6379.pid"
15) "slave-announce-ip"
16) ""
17) "replica-announce-ip"
18) ""
19) "maxmemory"
20) "0"
21) "proto-max-bulk-len"
22) "536870912"
23) "client-query-buffer-limit"
24) "1073741824"
上面是我本地的一部分的redis的配置
3.修改配置
修改配置使用的命令是 CONFIG SET <config_setting_name> <config_setting_value>
eg:
redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
结果:
1) "loglevel"
2) "notice"
4.部分配置项的说明
序号 | 配置项和可选参数 | 说明 |
---|---|---|
1 | daemonize no | 设置redis是否是以守护进程的方式运行,yes启用,no不启用 |
2 | pidfile /var/run/redis.pid | 守护进程运行时pid写入pidfile指定的文件中 |
3 | port 6379 | redis监听的端口,默认端口为6379 |
4 | bind 127.0.0.1 | redis绑定的主机地址 |
5 | timeout 300 | 客户端限制多长时间后关闭连接,如果为0,则不会因为超时关闭 |
6 | loglevel notice | 日志记录级别,debug、verbose、notice、warning,默认notice |
7 | logfile stdout | 日志记录方式,默认标准输出,守护+标准输出则会输出到/dev/null |
8 | databases 16 | redis的数据库数量,默认数据库为0号,可以通过SELECT # 来指定连接的数据库id |
9 | save | 在多少秒内、多少个更新操作就将数据同步到数据文件,可以多条件配合 |
10 | rdbcompression yes | 指定存储至本地数据库时是否压缩数据,默认为yes,CPU时间、存储空间大小需要权衡 |
11 | dbfilename dump.rdb | 指定本地数据库文件名 默认为dump.rdb |
12 | dir ./ | 指定本地的数据库存放位置 |
13 | slaveof <masterip> <masterport> | 设置本机为slav时,设置master的ip与端口则在redis启动时可以自动从master进行数据同步 |
14 | masterauth | 本机为master,slav连接master的密码 |
15 | requirepass foobared | redis的连接密码,如果配置了连接密码,则客户端在连接redis的时候需要输入密码,默认没有 |
16 | maxclients 128 | 同一时间最大的客户端连接数,默认无限制 |
17 | maxmemory <bytes> | redis的最大内存限制,达到最大的时候会先尝试清除已到期/即将到期的key,如果清除之后还是达到了最大的内存限制,则只能读不能写 |
18 | appendonly no | 是否指定每次更新操作之后都进行日志记录,默认为no,因为同步文件是根据上面的那个save的配置来的,如果有未同步的提交且机器故障,可能导致数据丢失 |
19 | appecdfilename appendonly.aof | 更新日志文件名 |
20 | appendfsync everysec | 更新日志条件:1、no表示等操作系统进行缓存时同步到磁盘,快但是不安全;2、always表示每次更新后手动调用fsync()将数据写入到磁盘,慢但是安全;3、evetysec表示每秒同步一次,这个是前两种选项的折中选择,默认值 |
21 | vm-enabled no | 表示是否使用虚拟内存机制,默认值为no,vm机制是将数据分页存放,访问多的放到内存中,少的放到磁盘中(类似操作系统分页置换) |
22 | vm-swap-file /tmp/redis.swap | 虚拟内存文件路径,默认值/tmp/redis.swap,不可以多个redis实例共享 |
23 | vm-max-memory 0 | 大于vm-max-memory的数据将会被被交换到磁盘上,另外因为key不会离开内存,所以如果因为key占用空间过大导致超出该值,则不会被移动到磁盘 |
24 | vm-page-size 32 | 单个page的大小,一个对象保存在多个page上,但一个page不能被多个对象共享,建议小对象用小的,大对象用大的 |
25 | vm-pages 134217728 | swap上page的数量,由于页表在内存上,磁盘上每8个pages消耗1Bytes内存 |
26 | vm-max-threads 4 | 设置访问swap文件的线程数,最好不要超过机器的核数,0则代表串行,默认为4 |
27 | glueoutpoutbuf yes | 向客户端应答时是否将较小的包合并成一个包发送,默认开启 |
28 | hash-max-zipmap-entires 64 hash-max-zipmap-value 512 | 超过一定数量或最大的元素超过某一临界值时,采用一种特殊的哈希算法 |
29 | activerehashing yes | 指定是否激活重置哈希,默认为开启 |
30 | include /path/to/local.conf | 指定包含的配置文件,可以在同一主机上多个redis实例之间使用统一份配置,而各实例又有自己的特定配置文件 |
写在最后
重申一遍,本文改编自菜鸟教程 Redis安装、配置只是个人笔记