Redis简介
- Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
- 非关系型数据库的一种,经常用作缓存数据库服务器。
- 官网:http://www.redis.io/ 中文网:http://www.redis.cn/
- 具有丰富的数据类型:字符串、哈希、列表、集合、有序集合
- 端口:6379
安装及连接测试
-
安装
- 双击安装软件
Redis-x64-3.2.100.msi
- 需要勾选将安装路径添加到系统环境变量PATH下
- 一路NEXT即可完成安装
- 安装后自动添加到系统服务中,并且已经启动
- 双击安装软件
-
连接
- 格式:
redis-cli -h host -p port -a pwd
- -h:指定主机,默认本机
- -p:指定端口,默认6379
- -a:指定密码
- –help:查看帮助
- 测试:
127.0.0.1:6379> ping PONG 127.0.0.1:6379>
- 退出:
quit
/exit
- 格式:
-
密码管理:设置密码后,不适用密码也能登录,但是没有权限做操作
- 单次有效:通过命令设置
- 获取配置:
config get requirepass
获取密码配置,config get *
获取所有配置 - 设置密码:
config set requirepass 123456
- 身份认证:
auth 123456
- 获取配置:
- 永久有效:修改配置文件
安装目录/redis.windows-service.conf
- 将
requirepass xxx
的行取消注释(去掉前面的#) - 后面跟上你要设置的密码
- 重启服务后即可生效
- 将
- 单次有效:通过命令设置
-
远程连接:修改配置文件中的
bind 127.0.0.1
为bind 0.0.0.0/本机IP
-
图形界面:
redis-desktop-manager-0.8.8.384.exe
- 一路next即可完成安装,添加连接即可查看对应的数据。
redis常用命令
-
常用管理命令:
ping:测试连接情况,默认恢复'PONG' quit/exit:退出客户端 auth:密码认证 config:配置命令,可以查看和设置配置信息,参考密码查看与设置 info:查看服务器信息,可以指定具体模块查看 command:查看支持的命令 select:选择库,总共16个,默认为0数据库;提示符后会有库号的提示,没有就是默认的库(0) flushdb:清空当前库 flushall:清空所有库 save:前台执行持久化存储 bgsave:后台执行持久化存储
-
键(keys):
exists:判断指定的键是否存在 del:删除指定的键值对 keys:查看指定样式的键,keys *表示查看所有 ttl:查看指定键的剩余有效时间,单位为秒,不存在键返回-2,永久返回-1 expire:设置指定键的生存时间 persist:移除指定键的生存时间,之后该键永久有效 move:移动指定的键到指定的库 rename:修改指定键的名字
数据类型
-
字符串(string)
set:设置,存在就修改,不存在就添加 get:获取,获取指定键的值 mset:同时设置多个键值对 mget:同时获取多个键对应的值 getset:设置新值,同时返回旧值 setex:设置值及过期时间,单位为秒 incr:数字值加1 decr:数字值减1 incrby:数字值加上指定值 decrby:数字值减去指定值 incrbyfloat:数字值加上一个浮点数 append:键存在,值为字符串,追加指定的内容到原值的末尾 strlen:返回键对应值的字符长度
-
哈希(hash)
hset:设置单个属性 hmset:设置多个属性 hmget:获取多个属性 hgetall:获取所有属性 hexists:判断指定键是否有指定的字段 hdel:删除指定键的指定字段 hkeys:获取指定键的所有字段 hvals:获取指定键的所有字段值 hlen:获取指定键的字段个数 hincrby:在指定键的指定字段上增加一个整数 hincrbyfloat:在指定键的指定字段上增加一个浮点数
-
列表(list)
lpush:从左边(头部)插入数据 lpop:从左边(头部)删除并返回数据 lrange:获取区间内的数据,0 -1通常可以表示所有范围 lindex:根据索引获取元素 llen:统计列表中元素个数 lset:设置指定索引的元素值 lrem:删除指定数量的元素 linsert:在指定元素的前/后插入元素 ltrim:修剪列表元素(保留指定范围内地,删除其他) rpop:从右边(尾部)删除并返回数据 rpush:从右边(尾部)插入数据
-
集合(set)
sadd:向集合中添加元素(集合不存在会自动创建)
scard:统计集合中元素的个数
smembers:返回所有元素
sismember:判断某个元素是否是集合的成员
spop:随机删除并返回指定个数的元素,不指定个数默认一个元素
srandmember:随机获取指定个数的元素
srem:移除指定元素
smove:将指定的元素从一个集合移动到另一个集合中
sinter:求交集
sinterstore:求交集并保存到一个集合中
sdiff:求差集
sdiffstore:求差集并保存到一个集合中
sunion:求并集
sunionstore:求并集并保存到一个集合中
- 有序集合(sorted set)
zadd:添加元素
zcard:统计元素个数
zcount:指定分数区间统计
zrange:返回指定索引范围内的元素(升序),zrevrange:降序
zrangebyscore:返回指定分数区间的元素(升序),zrevrangebyscore:降序
zrank:返回指定元素的索引(升序),zrevrank:降序
zrem:移除元素
zscore:返回元素的分数
zincrby:将元素的分数增加一个值
zinterstore:求交集并保存
zunionstore:求并集并保存
Python操作Redis
- 安装扩展:pip install redis
- 简介:
redis扩展库中有两个类,Redis和StrictRedis;StrictRedis实现了官方的命令,Redis是它的子类,兼容老版本。扩展中没有提供select方法,可以在连接时通过参数指定库。
-
操作:
- 简单连接:导入类库,创建Redis对象,然后所有的命名都是Redis对象的方法
- 连接池:多个Redis使用同一个连接池连接,减少了频繁的连接、断开数据库的开销
- 使用管道:可以先记录多条命令,然后一次性发送到服务器,避免了多次操作服务器的开销