Chinaunix首页 | 论坛 | 博客
  • 博客访问: 230878
  • 博文数量: 57
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 557
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-01 18:05
文章分类

全部博文(57)

文章存档

2017年(57)

我的朋友

分类: Python/Ruby

2017-12-05 17:24:31

Hash类型操作

Redis在内存中存储hash类型是以name对应一个字典形式存储的

hset(name,key,value)

#name对应的hash中设置一个键值对(不存在,则创建;否则,修改)

#参数:

    #name:redisname

    #key:key1对应的hash中的key

    #value:value1对应的hash中的value

 

#注:hsetx(name,key,value),name对应的hash中不存在当前key则创建(相当于添加)

hget(name,key)

#name对应的hash中获取根据key获取value

hmset(name,mapping)

#name对应的hash中批量设置键值对

#参数:

     #nameredisname

     #mapping:字典,如{'k1':'v1','k2','v2'}

 

#例:

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-12-05 17:27
  5. # @file :r1.py


  6. import redis

  7. pool = redis.ConnectionPool(host='10.89.1.10', port=6379)

  8. r = redis.Redis(connection_pool=pool)

  9. r.hmset('test', {'k1': 'v1', 'k2': 'v2'})
  10. print(r.hmget('test', 'k1', 'k2'))
执行结果:
['v1', 'v2']

#name对应的hash中获取多个key的值

#参数:

    #nameredis对应的name

    #keys:要获取key的集合,如:['k1','k2','k3']

    #*args:要获取的key,如:k1,k2,k3

获取name对应的hash中键值的个数


点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-12-05 18:05
  5. # @file :r2.py

  6. import redis

  7. pool = redis.ConnectionPool(host='10.89.1.10', port=6379)

  8. r = redis.Redis(connection_pool=pool)

  9. r.hmset('test', {'k1': 'v1', 'k2': 'v2'})
  10. print(r.hlen('test'))
执行结果:
2

hkeys(name):获取name对应的hash中所有的key的值

hvals(name):获取name对应的hash中所有的value的值



点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-12-05 18:07
  5. # @file :r3.py

  6. import redis

  7. pool = redis.ConnectionPool(host='10.89.1.10', port=6379)

  8. r = redis.Redis(connection_pool=pool)

  9. r.hmset('test', {'k1': 'v1', 'k2': 'v2'})

  10. print(r.hkeys('test'))
  11. print(r.hvals('test'))
执行结果:
['k2', 'k1']
['v2', 'v1']

hexists(name,key):检查name对应的hash是否存在当前传入的key

hdel(name,*keys):将name对应的hash中指定key的键值对删除


点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-12-05 18:08
  5. # @file :r4.py

  6. import redis

  7. pool = redis.ConnectionPool(host='10.89.1.10', port=6379)

  8. r = redis.Redis(connection_pool=pool)

  9. r.hmset('test', {'k1': 'v1', 'k2': 'v2'})

  10. print(r.exists('test'))
  11. print(r.hdel('test', 'k1'))
  12. print(r.hmget('test', 'k1', 'k2'))
执行结果:
True
1
[None, 'v2']
其他常用操作

delete(*names)

#根据name删除redis中的任意数据类型

exists(name)

#检测redisname是否存在

keys(pattern='*')

 

#根据* ?等通配符匹配获取redisname

expire(name ,time)

 

# 为某个name设置超时时间

rename(src, dst)

# 重命名

move(name, db))

redis的某个值移动到指定的db

# redis的某个值移动到指定的db

type(name)

# 获取name对应值的类型























阅读(1363) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~