数据库之Redis基本操作

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.1bind 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使用同一个连接池连接,减少了频繁的连接、断开数据库的开销
    • 使用管道:可以先记录多条命令,然后一次性发送到服务器,避免了多次操作服务器的开销

猜你喜欢

转载自blog.csdn.net/weixin_43869010/article/details/89140050