栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

22.redis和py

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

22.redis和py

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')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号