22.redis和py_redis

redis命令

概述
Redis本质上是一个Key-Value类型的内存数据库,整个数据库统统加载在内存当中进行操作,
定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,
每秒可以处理超过 10万次读写操作。
Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,
redis不仅仅支持简单的Key-Value类型,同时还把value分为list,set,zset,hash等数据类型
Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,
因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
效率会远远高于mysql,但是存储的量级不如mysql
Redis有哪些适合的场景?
(1)、会话缓存(Session Cache)
最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储的优势在于:
Redis提供持久化。user: password

redis是key-value的数据结构,每条数据都是一个键值对
键的类型是字符串
注意:键不能重复
值的类型分为五种
string ------》字符串
list ------》列表
hash ------》哈希
set ------》集合
zset ------》有序集合

连接redis:

redis-cli --raw
127.0.0.1:6379> ip 和 端口
exit
不用创建数据库
默认使用的是0号数据库
数据库是没有名称的,默认有16个,通过0-15来标识
切换到其他数据库:
select n
1、string类型  一个key值对应一个value值
name:dahai  age:18

增(改)

语法
    set key value 设置一个key 值为value
    有则改 无则增
     如果这个key存在,则更新value值
    如果这个key不存在,则就key value值存下来
实例
    如果这个key不存在,则就key value值存下来
    set name dahai
    如果这个key存在,则更新value值
    set name xialuo
追加数据:(在原来的字符上面增加)
    语法
        append key 字符
    实例
        append name 333
一次设置多个key value(没有就增加,有就改)
    语法  
        mset key value key value.....
    实例
        mset name dahai sex girl age 18

语法
    del key   
实例
    del name    

语法
    get key
实例
    get name
一次获取多个value
    语法
        mget key1,key2,key3....   
    实例
        mget name age sex

获取所有的key
keys *
其他的操作
set num 333
incr会识别字符串里面的数字并加1
incr num
decr会识别字符串里面的数字并减1
decr num
incrby在原有的基础上增加100
incrby num 100
decrby在原有的基础上减少100
decrby num 1000
过期时间(一秒为单位的)
比如会员 ,网盘链接
查看时间
ttl key
-1代表无限 -2代表不存在
expire age 30
要在时间还没有过期的时候
撤销过期时间(续费会员)
persist key

py_redis命令

一定要用链接虚拟机的文件夹
brew install redis@4.0
pip install redis
python与redis进行交互
数据库是没有名称的,默认有16个,通过0-15来标识

import redis
con = redis.StrictRedis(
    host='127.0.0.1',
    port='6379',
    db = 4,
    decode_responses=True
)

操作string类型

一个key值对应一个value值

有则增,无则改

con.set('country','中国')

增加多个 mset(字典)

con.mset({'name':'dahai','city':'长沙'})

a=con.get('country')
print(a)

有则增,无则改

con.set('name','xiaohai')

删除

con.delete('country')
没有是None
aa=con.get('country')
print(aa)

查多个 mget(多个key值)

b = con.mget('name','city')
返回一个列表
print(b)

操作列表类型

con.rpush('list1','中国','日本', '韩国', '印度', '新加坡', '马拉西亚')

con.lset('list1',1,999)

删 在头部删除一个数据

con.lpop('list1')

删 在尾部删除一个数据

con.rpop('list1')

a  = con.lrange('list1',0,-1)
print(a)

操作hash类型

con.hmset('user',{'name':'dahai','city':'changsha','age':18,'sex':'男'})

con.hset('user','age',888)

con.hdel('user','age')

查所有
在改主体时,需要清空一下hash

con.delete('user')***
con.hmset('user',{'name':'大白','age':30,'address':'湖北省武汉市','hobby':['滑板','钓鱼','学习']})
con.hset('user','hobby',['吃饭','睡觉'])
con.hdel('user','age')
a = con.hgetall('user')
print(a)

判断hash里是否存在某个值

con.hmset('user',{'name':'大白','age':30,'address':'湖北省武汉市','hobby':['滑板','钓鱼','学习']})
a1 = con.hexists('user','age')
print(a1)

操作集合类型

con.sadd('zset12','劳斯莱斯', '宾利', '迈巴赫', '法拉利', '兰博基尼')
con.sadd('zset14','宾利', '迈巴赫', '法拉利', '兰博基尼','宝马')

con.srem('zset12','迈巴赫')

交集

b = con.sinter('zset12','zset14')
print(b)

并集

b = con.sunion('zset12','zset14')
print(b)

差集

语法
	con.sdiff('第一个列表劳斯莱斯唯一','第二个列表价宝马唯一')
	谁放在第一个就保留谁的唯一那个
b = con.sdiff('zset12','zset14')
print(b)

查看集合中所有的元素
a1 = con.smembers('zset12')
print(a1)
a2 = con.smembers('zset14')
print(a2)

操作有序集合

con.zadd('zset13',1,'韩信',2,'小乔',3,'妲己',4,'蔡文姬')

con.zrem('zset13','韩信')

a=con.zrange('zset13',0,-1)
print(a)

py_redis全局命令

获取所有的key

print(con.keys())

设置过期时间

con.expire('zset12',30)

查看过期时间 -1代表永久 -2过期

print(con.ttl('zset12'))

不存在

print(con.ttl('aaaaa'))

未过期之前设置 续费

con.persist('zset12')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值