Redis二(Hash操作)

Hash操作

Hash操作,redis中Hash在内存中的存储格式如下图:

hset(name, key, value)


1

2

3

4

5

6

7

8

9

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

# 参数:

    # name,redis的name

    # key,name对应的hash中的key

    # value,name对应的hash中的value

# 注:

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

hmset(name, mapping)


1

2

3

4

5

6

7

8

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

# 参数:

    # name,redis的name

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

# 如:

    # r.hmset(‘xx‘, {‘k1‘:‘v1‘, ‘k2‘: ‘v2‘})

hget(name,key)


1

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

hmget(name, keys, *args)


1

2

3

4

5

6

7

8

9

10

11

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

# 参数:

    # name,reids对应的name

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

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

# 如:

    # r.mget(‘xx‘, [‘k1‘, ‘k2‘])

    # 或

    # print r.hmget(‘xx‘, ‘k1‘, ‘k2‘)

hgetall(name)


1

获取name对应hash的所有键值

hlen(name)


1

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

hkeys(name)


1

# 获取name对应的hash中所有的key的值

hvals(name)


1

# 获取name对应的hash中所有的value的值

hexists(name, key)


1

# 检查name对应的hash是否存在当前传入的key

hdel(name,*keys)


1

# 将name对应的hash中指定key的键值对删除

hincrby(name, key, amount=1)


1

2

3

4

5

# 自增name对应的hash中的指定key的值,不存在则创建key=amount

# 参数:

    # name,redis中的name

    # key, hash对应的key

    # amount,自增数(整数)

hincrbyfloat(name, key, amount=1.0)


1

2

3

4

5

6

7

8

# 自增name对应的hash中的指定key的值,不存在则创建key=amount

# 参数:

    # name,redis中的name

    # key, hash对应的key

    # amount,自增数(浮点数)

# 自增name对应的hash中的指定key的值,不存在则创建key=amount

hscan(name, cursor=0, match=None, count=None)


1

2

3

4

5

6

7

8

9

10

11

12

13

# 增量式迭代获取,对于数据大的数据非常有用,hscan可以实现分片的获取数据,并非一次性将数据全部获取完,从而放置内存被撑爆

# 参数:

    # name,redis的name

    # cursor,游标(基于游标分批取获取数据)

    # match,匹配指定key,默认None 表示所有的key

    # count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数

# 如:

    # 第一次:cursor1, data1 = r.hscan(‘xx‘, cursor=0, match=None, count=None)

    # 第二次:cursor2, data1 = r.hscan(‘xx‘, cursor=cursor1, match=None, count=None)

    # ...

    # 直到返回值cursor的值为0时,表示数据已经通过分片获取完毕

hscan_iter(name, match=None, count=None)


1

2

3

4

5

6

7

8

9

# 利用yield封装hscan创建生成器,实现分批去redis中获取数据

# 参数:

    # match,匹配指定key,默认None 表示所有的key

    # count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数

# 如:

    # for item in r.hscan_iter(‘xx‘):

    #     print item

更多参见:https://github.com/andymccurdy/redis-py/

http://doc.redisfans.com/

时间: 2024-12-26 11:11:49

Redis二(Hash操作)的相关文章

redis的hash操作在集中式session中的应用

在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共享的两大因素: 1. session必须有ha机制,集群中部分服务器发生故障时,保证session不丢失. 2. session的生命周期管理. 3. session的大小未知,整体的序列化和反序列化成本比较高. redis的解决方式 1. redis具有持久化功能,且sentiment具有ha功效

Redis的hash操作

hset key field value 作用: 把key中 filed域的值设为value 注:如果没有field域,直接添加,如果有,则覆盖原field域的值127.0.0.1:6379> hset user1 name lisi(integer) 1127.0.0.1:6379> hset user1 age 28(integer) 1127.0.0.1:6379> hset user1 height 175(integer) 1 hmset key field1 value1 [

二:redis 的hash类型相关操作

=====================二种:hash类型================== 介绍:redis -> hash是一个string类型的field和value的映射表 hash特别适合对应存储对象,相较于将对象的每个字段存成单个string类型 将一个对象存储在hash类型中会占用更少的内存,并且可以方便的存取整个对象 0:hset *如果 key(就是hash表) 不存在,一个新的哈希表被创建并进行 HSET 操作 设置hash field为指定值,如果key不存在,则先创建

C#中使用Redis学习二 .NET4.5中使用redis hash操作

上一篇>> 摘要 上一篇讲述了安装redis客户端和服务器端,也大体地介绍了一下redis.本篇着重讲解.NET4.0 和 .NET4.5中如何使用redis和C# redis操作哈希表.并且会将封装的一些代码贴一下.在讲解的过程中,我打算结合redis操作命令一起叙述,算是作为对比吧.这样也能让读者清楚了解,所分装的代码对应的redis的哪一些操作命令. hash哈希表简介 如何在.NET4.0/4.5中安装redis组件? 在上一篇博文中,安装好的redis服务器端,要记得开启服务.然后再

C#中使用Redis学习二 在.NET4.5中使用redis hash操作

C#中使用REDIS学习一 WINDOWS安装REDIS服务器端和客户端 http://www.tuicool.com/articles/uMb2Yjz 摘要 上一篇讲述了安装redis客户端和服务器端,也大体地介绍了一下redis.本篇着重讲解.NET4.0 和 .NET4.5中如何使用redis和C# redis操作哈希表.并且会将封装的一些代码贴一下.在讲解的过程中,我打算结合redis操作命令一起叙述,算是作为对比吧.这样也能让读者清楚了 解,所分装的代码对应的redis的哪一些操作命令

Redis Hash操作

[Redis Hash操作] 1.HSET key field value Sets field in the hash stored at key to value. If key does not exist, a new key holding a hash is created. If field already exists in the hash, it is overwritten. Return value Integer reply, specifically: 1 if fi

33. Python redis的 hash类型操作 其他常用操作

1.hash 类型操作 import redis pool = redis.ConnectionPool(host="192.168.48.131", port=6379, db=0) r = redis.Redis(connection_pool=pool) #hash类型操作:是一个name对应一个字典 #语法 hset(name, key, value) #name 对应的hash中设置一个键值对(不存在,则创建键值对:否则,修改键值对) # 语法参数解释: name: redi

redis的常用操作

redis的介绍: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis

.net core redis的全套操作

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器.这使得Redis可执行单层树复制.存盘可以有意无意的对数据进行写操作. 目录 一.在centos7上安装redis 二.redis string类型 三.redis list 类型 四.redis hash类型 五.redis sorte