一、关于Redis
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。
官网:https://redis.io/download,网传Redis是不支持windows的,但是,Microsoft开放技术小组 使这一切有了可能 ; window版下载地址:点击下载
二、安装和配置Redis
下载Redis For window X64.zip,加压到指定目录,如下图所示我解压到了D盘
打开cmd命令窗口,安装和注册redis到window服务,注意安装和启动服务这两个操作需要在解压Redis的根目录执行,这里才有Redis环境
安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose
启动服务命令:redis-server.exe --service-start
关闭服务命令:redis-server.exe --service-stop
安装和注册服务,启动服务启动后我们都可以看到 successfully的字样,说明我们配置成功了,下面我们去window-service查看本地服务,如下图,Redis已存在和启动
三、客户端使用Redis
注意:记得配置redis的环境变量,不然每次要进入到redis的目录下执行命令
我们重新打开一个cmd ,作为一个客户端调用redis服务,如下图所示,调用命令是:redis-cli.exe -h 127.0.0.1 -p 6379,如下图显示地址和端口,说明调用成功
然后我们使用set 和get 命令进行测试一下,set uname "abc",然后使用get uname可以获取到对应set的值,说明调用成功
四、Redis注意和其他
需要注意的是:所有命令需要在window解压的redis根目录执行,免安装的情况下,window 切换目录需要首先切到盘符D:然后cd到盘符的指定路径
相关配置文件和官方文档都在下载的目录中,比如下面的conf文件可以修改服务的端口号,默认的是6397
为了安全还需要给redis设置密码,默认安装后是没有密码的,修改方法,修改redis.windows.conf和 redis.windows-service.conf文件找到requirepass这一行加上自己的密码即可,如下图所示,修改后需要重启redis服务
验证修改成功,如下图,进入客户端调用界面输入auth 密码,如果正切则返回OK,然后利用config get requirepass可以得到redis的密码,得到密码前需要
用密码登录验证成功后才可以执行得到密码的命令
五、Redis客户端命令
- Windows命令行启动Redis客户端
1. 使用默认IP地址和端口连接Redis数据库(IP地址:127.0.0.1,端口号6379)
redis-cli
2. 使用指定IP地址和端口连接Redis数据库
redis-cli -h 192.168.2.144 -p 6379
- 查询所有键值
keys *
- 读写String类型的Value
1 set name ‘ljx’//写String类型
2 get name//读String类型
- 读写List类型的Value
//写List类型 1 rpush friends 'lyt' 2 rpush friends 'zqj'
//读List类型 3 lrange friends 0 -1
- 读写Hash类型的Value
//写Hash类型 1 hset address province 'sichuan' 2 hset address city 'chengdu' 3 hset address detail 'tianfuxingu' //读Hash类型 4 hgetall address
- Redis指令集
1 quit:关闭连接(connection) 2 auth:简单密码认证 3 4 持久化 5 6 save:将数据同步保存到磁盘 7 bgsave:将数据异步保存到磁盘 8 lastsave:返回上次成功将数据保存到磁盘的Unix时戳 9 shundown:将数据同步保存到磁盘,然后关闭服务 10 11 远程服务控制 12 13 info:提供服务器的信息和统计 14 monitor:实时转储收到的请求 15 slaveof:改变复制策略设置 16 config:在运行时配置Redis服务器 17 18 对value操作的命令 19 20 exists(key):确认一个key是否存在 21 del(key):删除一个key 22 type(key):返回值的类型 23 keys(pattern):返回满足给定pattern的所有key 24 randomkey:随机返回key空间的一个 25 keyrename(oldname, newname):重命名key 26 dbsize:返回当前数据库中key的数目 27 expire:设定一个key的活动时间(s) 28 ttl:获得一个key的活动时间 29 select(index):按索引查询 30 move(key, dbindex):移动当前数据库中的key到dbindex数据库 31 flushdb:删除当前选择数据库中的所有key 32 flushall:删除所有数据库中的所有key 33 34 对String操作的命令 35 36 set(key, value):给数据库中名称为key的string赋予值value 37 get(key):返回数据库中名称为key的string的value 38 getset(key, value):给名称为key的string赋予上一次的value 39 mget(key1, key2,…, key N):返回库中多个string的value 40 setnx(key, value):添加string,名称为key,值为value 41 setex(key, time, value):向库中添加string,设定过期时间time 42 mset(key N, value N):批量设置多个string的值 43 msetnx(key N, value N):如果所有名称为key i的string都不存在 44 incr(key):名称为key的string增1操作 45 incrby(key, integer):名称为key的string增加integer 46 decr(key):名称为key的string减1操作 47 decrby(key, integer):名称为key的string减少integer 48 append(key, value):名称为key的string的值附加value 49 substr(key, start, end):返回名称为key的string的value的子串 50 51 对List操作的命令 52 53 rpush(key, value):在名称为key的list尾添加一个值为value的元素 54 lpush(key, value):在名称为key的list头添加一个值为value的 元素 55 llen(key):返回名称为key的list的长度 56 lrange(key, start, end):返回名称为key的list中start至end之间的元素 57 ltrim(key, start, end):截取名称为key的list 58 lindex(key, index):返回名称为key的list中index位置的元素 59 lset(key, index, value):给名称为key的list中index位置的元素赋值 60 lrem(key, count, value):删除count个key的list中值为value的元素 61 lpop(key):返回并删除名称为key的list中的首元素 62 rpop(key):返回并删除名称为key的list中的尾元素 63 blpop(key1, key2,… key N, timeout):lpop命令的block版本。 64 brpop(key1, key2,… key N, timeout):rpop的block版本。 65 rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部 66 67 对Set操作的命令 68 69 sadd(key, member):向名称为key的set中添加元素member 70 srem(key, member) :删除名称为key的set中的元素member 71 spop(key) :随机返回并删除名称为key的set中一个元素 72 smove(srckey, dstkey, member) :移到集合元素 73 scard(key) :返回名称为key的set的基数 74 sismember(key, member) :member是否是名称为key的set的元素 75 sinter(key1, key2,…key N) :求交集 76 sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合 77 sunion(key1, (keys)) :求并集 78 sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合 79 sdiff(key1, (keys)) :求差集 80 sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合 81 smembers(key) :返回名称为key的set的所有元素 82 srandmember(key) :随机返回名称为key的set的一个元素 83 84 对Hash操作的命令 85 86 hset(key, field, value):向名称为key的hash中添加元素field 87 hget(key, field):返回名称为key的hash中field对应的value 88 hmget(key, (fields)):返回名称为key的hash中field i对应的value 89 hmset(key, (fields)):向名称为key的hash中添加元素field 90 hincrby(key, field, integer):将名称为key的hash中field的value增加integer 91 hexists(key, field):名称为key的hash中是否存在键为field的域 92 hdel(key, field):删除名称为key的hash中键为field的域 93 hlen(key):返回名称为key的hash中元素个数 94 hkeys(key):返回名称为key的hash中所有键 95 hvals(key):返回名称为key的hash中所有键对应的value 96 hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value