no-sql(非关系型数据库) redis数据类型key-values
windows下载地址:
官方地址:https://github.com/microsoftarchive/redis/releases
非官方地址:https://github.com/tporadowski/redis/releases
redis.cn/commands.html#中有redis的所有方法
配置
配置文件-redis.windows.conf: 将redis作为普通软件使用的配置,命令行关闭则redis关闭
配置文件-redis.windows-service.conf:将redis作为系统服务的配置,用以区别开两种不同的使用方式
maxheap 1024000000 设置redis服务堆内存字节数
maxmemory 3221225472 设置内存
requirepass sunck 设置密码
内存淘汰策略,当内存超出时进行淘汰 (当内存超出限制大小后将无法写入,只能读取)
maxmemory-policy volatile-lru
volatile-lru 根据LRU算法删除设置了过期时间的键,直到腾出可用空间。如果没有可删除的键对象,且内存还是不够用时,则报错(最近最少使用)
allkeys-lru 根据LRU算法删除所有的键,直到腾出可用空间。如果没有可删除的键对象,且内存还是不够用时,则报错(最近最少使用)
volatile-lfu 根据LFU算法删除设置了过期时间的键,直到腾出可用空间。如果没有可删除的键对象,且内存还是不够用时,则报错(使用频率最低的)
allkeys-lfu 根据LFU算法删除所有的键,直到腾出可用空间。如果没有可删除的键对象,且内存还是不够用时,则报错(使用频率最低的)
volatile-random 随机删除设置了过期时间的键,直到腾出可用空间。如果没有可删除的键对象,且内存还是不够用时,则报错(随机)
allkeys-random 随机删除所有键,直到腾出可用空间。如果没有可删除的键对象,且内存还是不够用时,则报错(随机)
volatile-ttl 根据键值对象的ttl属性, 删除最近将要过期数据。如果没有,则直接报错(删除最近过期的key)
noeviction 默认策略,不作任何处理,直接报错
日志位置
logfile "Logs/redis_log.txt"
日志等级
loglevel notice
debug(大量信息,对开发/测试有用)
verbose(很多很少有用的信息,但不像调试级别那样混乱)
notice(有点冗长,可能是在生产中需要的内容)
warning(只记录非常重要/关键的消息)
客户端自动释放的超时时间,0不释放,默认下客户端最大连接数为10000,超过时将无法写入
timeout 0
使用
1、在cmd中进入redis的安装目录下,执行redis-server.exe redis.windows.conf启动服务
2、再开一个cmd进入安装目录,执行redis-cli.exe连接服务器
3、输入auth "sunck"(设置的密码)
4、set name sunck 在redis中存一个数据,在可视化工具中测试
远程连接
1、要修改conf中bind为0.0.0.0,
2、找到daemonize no,把no改为yes,让redis在后台开启守护进程 windows设置无效,需要以windows服务的方式启用
3、找到protected-mode yes,把yes改为no(no时允许公网访问),或者在yes配置bind或requirepass(实际测试中并未生效,没有查明具体的原因)
注册为windwos服务
#注册
redis-server.exe --service-install redis.windows.conf
#卸载
redis-server --service-uninstall
可视化管理工具
Redis Desktop Manager
连接命令
redis-cli -h host -p port -a password
其他命令
获取指定配置信息
CONFIG GET *memory*
设置指定配置信息
CONFIG SET maxmemory-policy volatile-lru
查看服务器信息
info
# Memory 内存信息
used_memory:13490096 #数据占用了多少内存(字节)
used_memory_human:12.87M #数据占用了多少内存(带单位的,可读性好)
used_memory_rss:13490096 #redis占用了多少内存
used_memory_peak:15301192 #占用内存的峰值(字节)
used_memory_peak_human:14.59M #占用内存的峰值(带单位的,可读性好)
used_memory_lua:31744 #lua引擎所占用的内存大小(字节)
mem_fragmentation_ratio:1.00 #内存碎片率
mem_allocator:libc #redis内存分配器版本,在编译时指定的。有libc、jemalloc、tcmalloc这3种