需要redis安装的请看网址
(https://www.runoob.com/redis/redis-install.html)
python操作redis的第三方库叫“redis-py”。需要用python的pip命令来安装它,也可以在pycharm中添加需要的第三方库
安装完成后,打开python的交互环境测试安装结果:导入redis,如果不报错,则说明导入成功,导入成功意味着安装成功。
我们要在cmd 下载Redis包
命令:pip install redis
如果会出现黄色字体警告,你应该更新 Redis包,
python.exe -m pip install --upgrade pip
完成后进入python
输入import redis
表示完成
在pycharm 中连接redis
- 新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息;
- 需要的存储结构:一个存储空间保存多个键值对数据;
- Hash类型:底层使用哈希表结构实现数据存储。
- 散列表是可以存储多个键值对的映射,是无序的一种数据集合。键的内容必须是唯一的,不能重复。键内容中间可以采用类似“:”的隔离符号。特别适用于存储一个对象。
注意:
- 键内容的字符串不易过长
- 更适合对小规模数据结构对象的存储及操作。
- . Hash类型数据操作的注意事项
- Hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如数据未获取到,对应的值为nil。
- 每个hash可以存储232-1个键值对
- Hash类型非常贴近对象的数据存储形式,并且可以灵活的删除对象属性。
- Hgetall操作可以获取所有属性,如果filed过多,遍历整体数据效率会很低,有可能成为数据访问的瓶颈。
import redis
h = redis.Redis(decode_responses=True)
'''
# 用连接池连接,是显示不了中文的
pool = redis.ConnectionPool(host = 'localhost',)
h = redis.Redis(connection_pool=pool)
'''
h.hset('haxi','name','唐家三少') #建立单个键值对
h.hmset('haxi1',{'name1':'天蚕土豆','name2':'我吃西红柿','book':'斗罗大陆','price':33}) #建立多个键值对
print('单个值:',h.hget('haxi1','name')) # 单个取hash的key对应的值
print("对应的值:",h.hmget('haxi1','name','name1','name2')) # 多个取hash的key对应的值
print("获取所有的键值对:",h.hgetall('haxi1')) #获取在哈希表中指定 key 的所有字段和值
print("哈希表中字段的数量:",h.hlen('haxi1')) #获取哈希表中字段的数量
h.hmset('haxi2',{'name5':'烽火戏诸侯','book1':'仙逆'})
print("haxi2是否存在",h.exists('haxi2')) #查看哈希表 key 中,指定的字段是否存在。
print("删除haxi,haxi2:",h.hdel('haxi','haxi2')) # 删除一个或多个哈希表字段
h.hsetnx('haxi1','number','no.123456') # 不存在时key,则➕
print("键key:",h.hkeys('haxi1')) # 取hash中所有的key
h.hincrby('haxi1','price',15) # 整数值加上增量 increment
print("键values:",h.hvals('haxi1')) # 取hash中所有的value
print('迭代器:',h.hscan('haxi1',match ='n*'))
# 返回的每个元素都是一个元组,每一个元组元素由一个字段(field) 和值(value)组成。