1,什么是redis?
Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库
Redis与其他key-value缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行性使用Redis不仅仅支持简单的key-value,同时还提供list, set, zset, hash等数据结构的存储Redis支持数据的备份,即master-slave模式的数据备份
2,Redis优势
性能极高-Redis能读的速度时110000次/s,写的速度是81000次/s丰富的数据类型-Redis支持二进制案例的String(字符串), Lists(列表), Hashes(散列), Sets(集合)及OrderedSets(有序集合)数据类型操作,原子-Redis的所有操作都是原子性的,意思就是说要么成功执行,要么失败完全不执行,单个操作是原子性的,多个操作也支持事物,即原子性,通过MULTI和EXEC指令包起来丰富的特性--Redis还支持publish/subscribe,通知,key,过期等等特性
3,Redis与其他key-value存储有什么不同?
Redis有着更复杂的数据结构并且提供对他们原子性操作,这是一个不同于其他数据库的进化路径,Redis的数据类型是基于数据结构的同时对程序员透明,无需进行额外的抽象Redis运行在内存中但是可以持久化到磁盘,所以对不同数据及进行高速读写时需要权衡内存,因为数据量不能大于硬件内存,在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存汇总操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情.同时,在磁盘格式方面他们是紧凑的以追加的方式产生,因为他们并不需要进行随机访问
4,安装
Windows安装地址:
https://github.com/MSOpenTech/redis/releases.
redis支持32位和64位.这个需要根据系统平台的实际情况选择.
解压完以后是这样一个目录,打开一个cmd窗口,使用cd命令切换到D:\Redis下运行:
redis-server.exe redis.windows.conf
开启服务,在w10的系统中开启服务,就会在进程中每当开机的时候,redis服务就会启动,如果不是的话,每次就要开启一下服务,
然后一下客户端连接一下:
redis-cli.exe -h 127.0.0.1 -p 6379
这时指定那台服务器上的redis服务,看是否ping的通
5,Redis的配置
Redis配置文件位于Redis目录下,文件名为redis.conf.
你可以通过CONFIG命令查看或设置配置项
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
查询所有参数配置
CONFIG GET *
127.0.0.1:6379> CONFIG GET * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "unixsocket" 8) "" 9) "logfile" 10) "server_log.txt" 11) "pidfile" 12) "" 13) "maxmemory" 14) "104857600" 15) "maxmemory-samples" 16) "5" 17) "timeout" 18) "0" 19) "auto-aof-rewrite-percentage" 20) "100" 21) "auto-aof-rewrite-min-size" 22) "67108864" 23) "hash-max-ziplist-entries" 24) "512" 25) "hash-max-ziplist-value" 26) "64" 27) "list-max-ziplist-size" 28) "-2" 29) "list-compress-depth" 30) "0" 31) "set-max-intset-entries" 32) "512" 33) "zset-max-ziplist-entries" 34) "128" 35) "zset-max-ziplist-value" 36) "64" 37) "hll-sparse-max-bytes" 38) "3000" 39) "lua-time-limit" 40) "5000" 41) "slowlog-log-slower-than" 42) "10000" 43) "latency-monitor-threshold" 44) "0" 45) "slowlog-max-len" 46) "128" 47) "port" 48) "6379" 49) "tcp-backlog" 50) "511" 51) "databases" 52) "16" 53) "repl-ping-slave-period" 54) "10" 55) "repl-timeout" 56) "60" 57) "repl-backlog-size" 58) "1048576" 59) "repl-backlog-ttl" 60) "3600" 61) "maxclients" 62) "10000" 63) "watchdog-period" 64) "0" 65) "slave-priority" 66) "100" 67) "min-slaves-to-write" 68) "0" 69) "min-slaves-max-lag" 70) "10" 71) "hz" 72) "10" 73) "cluster-node-timeout" 74) "15000" 75) "cluster-migration-barrier" 76) "1" 77) "cluster-slave-validity-factor" 78) "10" 79) "repl-diskless-sync-delay" 80) "5" 81) "tcp-keepalive" 82) "0" 83) "cluster-require-full-coverage" 84) "yes" 85) "no-appendfsync-on-rewrite" 86) "no" 87) "slave-serve-stale-data" 88) "yes" 89) "slave-read-only" 90) "yes" 91) "stop-writes-on-bgsave-error" 92) "yes" 93) "daemonize" 94) "no" 95) "rdbcompression" 96) "yes" 97) "rdbchecksum" 98) "yes" 99) "activerehashing" 100) "yes" 101) "protected-mode" 102) "yes" 103) "repl-disable-tcp-nodelay" 104) "no" 105) "repl-diskless-sync" 106) "no" 107) "aof-rewrite-incremental-fsync" 108) "yes" 109) "aof-load-truncated" 110) "yes" 111) "maxmemory-policy" 112) "noeviction" 113) "loglevel" 114) "notice" 115) "supervised" 116) "no" 117) "appendfsync" 118) "everysec" 119) "appendonly" 120) "no" 121) "dir" 122) "D:\\Redis" 123) "save" 124) "jd 900 jd 300 jd 60" 125) "client-output-buffer-limit" 126) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 127) "unixsocketperm" 128) "0" 129) "slaveof" 130) "" 131) "notify-keyspace-events" 132) "" 133) "bind" 134) "127.0.0.1" 127.0.0.1:6379>
设置命令:
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
redis 127.0.0.1:6379> CONFIG SET loglevel "notice" OK redis 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice"
参数说明:
redis.conf配置项 说明如下:
Redis默认不是以守护进程的方式运行,可以通过改配置项修改,使用过yes启用守护进程daemonize no当Redis监听端口,默认端口 为6379,作者在自己的一篇稳重解释了为什们选用6379作为默认端口,因为6379在手机按键上对应MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字port 6379绑定的主机地址bind 127.0.0.1当Redis以守护进程运行时,Redis默认会把pid写入/var/run/redis.pid文件 ,可以通过pidfile指定pidfile /var/run/redis.pid当客户端闲置多长时间后关闭连接, 如果指定 为0, 表示关闭该功能timeout 300(单位是毫秒)指定日志记录级别,Redis总共支持四个级别:debug, verbose, notice, warning,, 默认verboseloglevel verbose日志记录方式,默认为标准输出,如果配置Redis为守护进程运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/nulllogfile stdout设置数据库的数量,默认数据库为0,可以使用SELECT命令在连接上指定数据库iddatabases 16指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)