Redis安装与使用方法小结
本文实例总结了Redis安装与使用方法。分享给大家供大家参考,具体如下:
1、下载:
项目地址:https://github.com/MSOpenTech/redis
下载地址:https://github.com/MSOpenTech/redis/releases
注意,要下载zip版的,不要下载msi版的。
2、安装:
解压,拷贝到e盘根目录,文件夹改名为redis(把版本号之类的干掉),即完成安装。
3、启动:
打开cmd,进入redis,输入命令redis-server.exe redis.windows.conf
,回车,即启动完成。
出现一个正方形盒子图案,即使启动成功。
否则启动失败。
在开发环境下,要用管理员身份打开cmd,才可启动成功。如果是服务器环境,本身就是管理员身份,就不需要特别这样做。
4、测试:
另开一个cmd,进入redis,输入命令redis-cli.exe,回车,即进入redis操作状态。
输入set age 21
,会返回OK,表示写入成功。
输入get age
,会返回21,表示取值成功。
测试完成。
如果要连接的不是本地,或者端口已经改变,发现连不上,应该这样:
redis-cli.exe -h 主机IP -p 新端口号
比如,假设端口已经改为666,那么应该这样写:
redis-cli.exe -p 666
这样就可以连上了
5、持久化:
① AOF:
在redis.windows.conf里修改:
appendonly yes
即可,会在程序文件夹下生成一个appendonly.aof文件,也就是日志文件,数据会存放在这个文件里。
② RDB:
默认会在程序文件夹下创建名为dump.rdb的数据快照。快照的逻辑如下:
#900秒后且至少1个key发生变化时创建快照 save 900 1 #300秒后且至少10个key发生变化时创建快照 save 300 10 #60秒后且至少10000个key发生变化时创建快照 save 60 10000
可以通过注释掉save来禁止创建快照。
③ 什么是RedisQFork.dat:
这是redis的内存映射,当redis启动的时候就会创建这样一个文件,当关闭的时候这个文件也就消失了。这个文件就是把内存的数据写到里面,做一个映射。
当数据越多这个bat也就越大,就会占用c盘的空间,解决的办法是将路径改为其他盘。
注意:我下载的3.2版本没找到heapdir,而且自己设置heapdir e:\redis\然后启动会报错,未知的参数heapdir,另外整个电脑找不到RedisQFork文件,我怀疑新版的redis已经废弃了这种映射。
为了测试下载了2.8版本,确实有heapdir选项。
6、开机启动:
把redis配置为服务:
以管理员身份打开cmd,进入e盘,输入:
回车,服务就创建完成了。
可以打开运行-services.msc
-可以看到Redis服务。
重启电脑,Redis已经启动。可以打开redis-cli测试。
删除服务:
E:\redis\redis-server --service-uninstall
7、安全性
在redis.windows.conf里面修改:
① 绑定ip
可以是本地,也可以是外网,这个一般默认已经绑定(redis3.2)
bind 127.0.0.1
② 修改默认端口
默认的6379改为其他端口
③ 禁用危险命令
将其置为""即禁用以下命令:
rename-command FLUSHALL "" rename-command CONFIG "" rename-command EVAL ""
8、通过命令行模糊查询
如果我们确定一个key,进行查询就这样:
get xxx
如果我们只知道这个key的前缀是test,那么可以这样:
keys test*
可以用*和?来匹配模糊的部分。
9、过期时间
php用redis写入过期时间一定要强制为(int)型,不管是string还是double都不行,只有int可以。
希望本文所述对大家Redis数据库程序设计有所帮助。
- ListView数据动态更新
- ListView优化和列表首尾使用
- 自定义BaseAdapter
- 使用SimpleAdapter
- 自定义ArrayAdapter
- ListActivity和自定义列表项
- ListView列表数据源——Adapter
- 初识ListView
- 响应Android系统的事件
- ImageSwitcher和TextSwitcher
- Android BLE 基础框架全新改版
- Android 混淆从入门到精通
- 基础篇章:关于 React Native 之 ViewPagerAndroid 组件的讲解
- 基础篇章:关于 React Native 之 DrawerLayoutAndroid 组件的讲解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Git技术干货!工作中Git的使用实践和常用命令合集!
- gremlin-both()与bothE().bothV()的区别
- C# Time.deltaTime 增量时间
- Docker--docker ps 命令与结果解析
- Junit5系列-Junit5中@DisplayName自定义名称
- Junit5系列-Junit5中Assertions断言类
- 使用libev监视文件夹下文件(夹)属性变动的方案和实现
- C++拾取——stl标准库中集合交集、并集、差集、对称差方法
- netty结合Protostuff传输对象案例,单机压测秒级接收35万个对象
- Kubernates之Deployment滚动升级和回滚
- 简记特定容器list和forward_list算法
- Games101--Assignment2
- 快速学习-如何使用sentinel
- springboot-mybatis-demo遇到的坑
- 快速学习-Sentinel 工作主流程