redis
下载地址
使用问题
下载完成后,使用redis-server.exe报错
1、no config file specified
解决:使用redis-server.exe redis.windows.conf
2、Creating Server TCP listening socket 127.0.01:6379: bind:No error
解决:1、将redis目录下的redis.windows.conf文件中的 # bind 127.0.0.1 ::1 改为 bind 127.0.0.1
2、1不行的话就双击redis-cli.ext 输入shutdown命令
三种启动方式
1、进入redis跟目录:双击redis-server.exe
或者shift+右键,选择“在此处打开命令窗口”,然后输入redis-server.exe,也可以启动redis
2、bat脚本启动:
startup.bat文件,内容如下:
@echo off
title redis-server
set ENV_HOME="E:software
edis-x64-3.2.100"
E:
color 0a
cd %ENV_HOME%
redis-server.exe redis.conf
exit
3、无窗口启动
桌面写一个redis-startup.vbs文件,内容如下:
set ws=wscript.createobject("wscript.shell")
ws.run "D:/app/redis/startup.bat /start",0
注:a、D:/app/redis是启动文件的存放路径,我放在了redis路径下面
b、D:/app/redis/startup.bat startup.bat就是2里面写的文件。
c、“,0”:代表隐藏窗口
“,4”:运行后不激活,不打扰原来的活动窗口
由于是无窗口的,不放心的话可以在服务里面查询是否启动成功:
运行redis
打开一个 cmd 窗口 使用cd命令切换目录到 C:\program files\redis 运行 redis-server.exe redis.windows.conf 。
输出界面后,打开另一个cmd窗口,原来不关闭,运行redis-cli.exe -h 127.0.0.1 -p 6379 。
6379:端口号
在该界面进行操作
数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
- String(字符串)
string 是 redis 最基本的类型 – 一个 key 对应一个 value。
string 类型是二进制安全的
redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型的值最大能存储 512MB。
- Hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
注:使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。
每个 hash 可以存储 232 -1 键值对(40多亿)。 - List列表
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
注:lpush命令: 添加
runoob : 列表名字
redis : 自定义字符串
lrange 命令: 遍历
0 10:遍历的列表的范围 - Set(集合)
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 - Zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
命令
Hash集合命令
- hmset,hget
注:使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。 - hgetall
注:获取在哈希表中指定 key(myhash) 的所有字段和值 - hexists key field
查看哈希表 key 中,指定的字段是否存在
存在: (integer) 1
不存在:(integer) 0
List集合命令
- lpush,lrange
注:lpush命令: 添加
runoob : 列表名字
redis : 自定义字符串
lrange 命令: 遍历
0 10:遍历的列表的范围
set集合命令
- sadd,smembers
sadd key member:添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
注:实例中mongodb添加了两次,根据集合的唯一性,第二次插入的元素被忽略
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset集合命令
- zadd,rangebyscore
zadd key score member : 添加元素到集合,元素在集合中存在则更新对应score
Key – 键
- get,set
注: del是一个命令, cmf是一个键。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0
字符串命令
- get,set命令
redis订阅者和发送者
- 创建订阅频道号redisChat
- 重新开启redis客户端,在同一频道redisChat发布两次消息,订阅者收到消息
- 订阅号界面消息:
redis事务
- multi – 开始事务
- 命令入队
- exec – 执行事务
- 注:redis事务可理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。
redis连接
- ping
查看服务是否运行 - quit
关闭当前连接 - auth password
验证密码是否正确
redis服务器
info
获取redis服务器信息的统计信息
client list
获取连接到服务器的客户端连接列表
client setname connection-name
设置当前连接的名称
client getname
获取连接的名称
command
获取 Redis 命令详情数组
dbsize
返回当前数据库的 key 的数量