Redis学习笔记 - Python操作Redis

  • redis文档:http://redisdoc.com
  • redis是一个高性能的键值数据库。是当前最热门的的的NoSql数据库之一,也被人们称为数据结构服务器。
  • redis应用:
    1、高速缓存服务(用户经常访问的数据从数据库搬到内存)
    2、实时排行榜
    3、投票点赞
    4、验证码服务
    5、消息队列
    等等应用场景…
  • 查看redis版本
    redis-server --version
    redis-cli --version
  • 查看redis进程
    netstat -nap | grep redis
  • 启动redis
    redis-server
  • 启动redis并且保持后台运行
    redis-server > redis.log &
  • 启动redis更改端口
    redis-server --port 1234 >redis.log &
  • 启动redis加上口令验证
    redis-server --requirepass 26324636 > redis.log &
  • 查看后台任务
    jobs
  • 客户端连接
    redis-cli
  • 客户端连接其他人(指定主机,需要指定端口的话加上)
    redis-cli -h 120.77.222.217 -p 1234
  • 客户端验证身份
    auth 26324636

字符串

  • 设置键值对
    set username effort
  • 获取键值对
    get username
  • 追加
    append username 123
  • 设置键值对超时时间(30s之后自动消失)
    set username zjw ex 30
  • ps:设置手机号验证码
    set 17866668888 567899 ex 300
  • 查看指定键还剩多少时间
    ttl 17866668888

哈希表

哈希存储 - 性能非常好的存储方案 - set
obj — 哈希函数 —> 哈希码(散列码) —> 对象在内存中存储的位置
文件 —> MD5 /SHA1/SHA256 --> 哈希码(数字指纹/数字签名)

  • 设置哈希
    hset stu1 id 1001
    hset stu1 name zhongjiawei
  • 批量设置哈希
    hmset stu2 id 1002 name zhangsan
  • 获取哈希
    hget stu1 name
  • 批量获取哈希信息
    hmget stu1 id name sex
  • 查看所有的值
    hvals stu1
    hgetall stu1

列表

  • 插入列表元素
    lpush numbers 10 20 30 40 50 60
  • 取出列表元素
    lpop numbers

集合

  • 插入集合元素
    sadd set1 10 20 10 10 30 40
    sadd a 2 4 6 8
    sadd b 1 2 3 4 5 6
  • 获取集合元素
    smembers set1
  • 交集
    sinter a b
  • 并集
    sunion a b

有序集合
ZADD key score member [[score member] [score member] …]

  • 插入有序集合元素
    zadd phb 150 a 100 b 50 c 200 d
  • 从低到高输出
    zrange phb 0 -1
  • 从高到低输出
    zrevrange phb 0 -1
  • 从高到低输出(带值)
    zrevrange phb 0 -1 withscores
  • 为有序集 key 的成员 member 的 score 值加上增量(比如票数增加了5000)
    zincrby phb 5000 a

地理信息运算

  • 新增地理位置:
    geoadd map 120.12792 30.228932 xihu 120.169373 30.259392 hubinyintai

  • 计算两点地理位置距离(直线距离,默认m):
    geodist map xihu hubinyintai km

  • 计算以指定地理位置多少半径内的所有位置信息(显示距离):
    georadius map 120.12792 30.228 10 km withdist

修复持久化文件
redis-check-rdb --fix dump.rdb
redis-check-aof --fix appendonly.aof

在python中使用redis

import redis

def main():
    client = redis.Redis(host='127.0.0.1',port=6379)
    
    #字符串    
    client.set('username','张三',ex=300)
    print(client.ttl('username'))
    print(client.get('username').decode())
    
    client.set('zjw','300')
    client.incr('zjw')
    client.incrby('zjw',50)
    print(int(client.get('zjw').decode()))

    #哈希表
    client.hset('stu1','id','1001')
    client.hset('stu1','name','张三')
    print(client.hgetall('stu1'))
    print(client.hget('stu1','name').decode())

    #列表
    client.lpush('list1',10,20,30,40)
    print(client.lrange('list1',0,-1))
    
    #集合
    client.sadd('set1',10,20,10,30,20)
    print(client.smembers('set1'))
    
    #有序集合
    client.zadd('zset1',{'a':100,'b':50,'c':150})
    print(client.zrange('zset1',0,-1))
    print(client.zrevrange('zset1',0,-1,'withscores'))
    
    #地理信息计算
    client.geoadd('map','120.12792','30.228932','xihu','120.169373','30.259392','hubinyintai')
    print(client.geodist('xihu','hubinyintai'))


if __name__ == '__main__':
    main()

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值