redis基础类型与基础配置

2019-11-29

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种

 

{/if}