广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Redis教程(3)
  • 606
分享到

Redis教程(3)

教程Redis 2023-01-31 02:01:46 606人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

2)hashRedis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占

2)hash
Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新建一个hash对象时开始是用zipmap(又称为small hash)来存储的。这个zipmap其实并不是hash table,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据存储开销。尽管zipmap的添加,删除,查找都是O(n),但是由于一般对象的field数量都不太多。所以使用zipmap也是很快的,也就是说添加删除平均还是O(1)。如果field或者value的大小超出一定限制后,Redis会在内部自动将zipmap替换成正常的hash实现. 这个限制可以在配置文件中指定
  hash-max-zipmap-entries 64 #配置字段最多64个。
  hash-max-zipmap-value 512 #配置value最大为512字节。
  1、hset
  设置hash field为指定值,如果key不存在,则先创建。
  redis 127.0.0.1:6379> hset myhash field1 Hello

  (integer) 1

  redis 127.0.0.1:6379>
  2、hsetnx
  设置hash field为指定值,如果key不存在,则先创建。如果field已经存在,返回0,nx是not exist的意思。
  redis 127.0.0.1:6379> hsetnx myhash field "Hello"

  (integer) 1

  redis 127.0.0.1:6379> hsetnx myhash field "Hello"

  (integer) 0

  redis 127.0.0.1:6379>
  第一次执行是成功的,但第二次执行相同的命令失败,原因是field已经存在了。
  3、hmset
  同时设置hash的多个field。
  redis 127.0.0.1:6379> hmset myhash field1 Hello field2 World

  OK

  redis 127.0.0.1:6379>
  4、hget
  获取指定的hash field。
  redis 127.0.0.1:6379> hget myhash field1

  "Hello"

  redis 127.0.0.1:6379> hget myhash field2

  "World"

  redis 127.0.0.1:6379> hget myhash field3

  (nil)

  redis 127.0.0.1:6379>
  由于数据库没有field3,所以取到的是一个空值nil。
  5、hmget
  获取全部指定的hash filed。
  redis 127.0.0.1:6379> hmget myhash field1 field2 field3

  1) "Hello"

  2) "World"

  3) (nil)

  redis 127.0.0.1:6379>
  由于数据库没有field3,所以取到的是一个空值nil。

  6、hincrby
  指定的hash filed 加上给定值。
  redis 127.0.0.1:6379> hset myhash field3 20

  (integer) 1

  redis 127.0.0.1:6379> hget myhash field3

  "20"

  redis 127.0.0.1:6379> hincrby myhash field3 -8

  (integer) 12

  redis 127.0.0.1:6379> hget myhash field3

  "12"

  redis 127.0.0.1:6379>
  在本例中我们将field3的值从20降到了12,即做了一个减8的操作。
  7、hexists
  测试指定field是否存在。
  redis 127.0.0.1:6379> hexists myhash field1

  (integer) 1

  redis 127.0.0.1:6379> hexists myhash field9

  (integer) 0

  redis 127.0.0.1:6379>
  通过上例可以说明field1存在,但field9是不存在的。
  8、hlen
  返回指定hash的field数量。
  redis 127.0.0.1:6379> hlen myhash

  (integer) 4

  redis 127.0.0.1:6379>
  通过上例可以看到myhash中有4个field。
  9、hdel
  返回指定hash的field数量。
  redis 127.0.0.1:6379> hlen myhash

  (integer) 4

  redis 127.0.0.1:6379> hdel myhash field1

  (integer) 1

  redis 127.0.0.1:6379> hlen myhash

  (integer) 3

  redis 127.0.0.1:6379>
  10、hkeys
  返回hash的所有field。
  redis 127.0.0.1:6379> hkeys myhash

  1) "field2"

  2) "field"

  3) "field3"

  redis 127.0.0.1:6379>
  说明这个hash中有3个field。
  11、hvals
  返回hash的所有value。
  redis 127.0.0.1:6379> hvals myhash

  1) "World"

  2) "Hello"

  3) "12"

  redis 127.0.0.1:6379>
  说明这个hash中有3个field。
  12、hgetall
  获取某个hash中全部的filed及value。
  redis 127.0.0.1:6379> hgetall myhash

  1) "field2"

  2) "World"

  3) "field"

  4) "Hello"

  5) "field3"

  6) "12"

  redis 127.0.0.1:6379>
  可见,一下子将myhash中所有的field及对应的value都取出来了。

--结束END--

本文标题: Redis教程(3)

本文链接: https://www.lsjlt.com/news/186035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis教程(3)
    2)hashRedis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占...
    99+
    2023-01-31
    教程 Redis
  • GNS-3教程
    [url]www.netemu.cn[/url]网络模拟器致力于网络模拟器的应用。本站同时发布GNS-3 的汉化版本日期:07.06.09汉化人员:错字小王子,小漏整理:小漏时间仓促如有错误请发邮件[email]netemu@gmail.c...
    99+
    2023-01-31
    教程 GNS
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考...
    99+
    2017-08-12
    Python 3 教程
  • Cassandra教程(3)---- 架
    架构简介    Cassandra是设计用于跨多节点方式处理大数据,它没有单点故障;这种架构设计之初就考虑到了系统和硬件故障。Cassandra地址发生失效问题,通过采用跨节点的分布式系统,将数据分布在集群中的所有节点上解决。每个节点使用P...
    99+
    2023-01-31
    教程 Cassandra
  • adminLTE 教程 -3 box
    adminLTE的box算是它样式中最主要的部分,下面的连接是演示地址,这里面基本上列举出来所有的样式和插件,目的就是希望用户可以在这一个网站中,全面的了解adminLTE。并且,更重要的是,我们可以直接在F12的调试窗口,选中我们想要的样...
    99+
    2023-01-31
    教程 adminLTE box
  • Active Directory教程3
    Active Directory 的早期阶段,企业常常在用户可能登录的每个站点均部署域控制器。例如,银行通常在每个支行都安装 DC。其中的逻辑是每个支行的用户都能登录并访问本地网络资源,即使 WAN 失效也能如此。本文是《Active Di...
    99+
    2023-01-31
    教程 Active Directory
  • Redis 教程
    Redis 教程 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BS...
    99+
    2020-05-19
    Redis 教程
  • linux入门教程(3)
    (文:flynng)  3.4 进程管理  Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。  在Linux系统...
    99+
    2023-01-31
    入门教程 linux
  • springmvc经典教程(3)
    springmvc史上最好教程(2)springmvc史上最好教程(1)1.1 需求使用springmvc+mybatis架构实现商品信息维护。  1.2 商品修改1.2.1 dao使用逆向工程自动生成的代码:ItemsMapper.Jav...
    99+
    2023-01-31
    教程 经典 springmvc
  • JavaFX与Jfoenix教程3
    1.升级上一节的Hello World,上一节的样式都是通过代码来实现,本章将通过CSS实现样式编写,引用CSS样式分为行内CSS样式和外部CSS样式,本次教程使用行内CSS样式来实现,实现代码如下package com.dengyunsh...
    99+
    2023-01-31
    教程 JavaFX Jfoenix
  • iX redis(3)
    IX redis(3) 加载rdb文件(或加载aof文件);redis replication; redis-migrate-tool,此工具适用任何场景,是重点:https://github.com/vipshop/redis-migra...
    99+
    2023-01-31
    iX redis
  • Redis教程(一):Redis简介
    一、简介: 在过去的几年中,NoSQL数据库一度成为高并发、海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机。然而在众多产品中能够脱颖而出的却屈指可数,如Redis、MongoDB、Be...
    99+
    2022-06-04
    简介 教程 Redis
  • 3.redis集群部署3主3从
    redis集群部署 一:安装redis (使用redis3.0.6版本),同《1.redis安装》1.下载源码$ tar xzf redis-3.0.6.tar.gz$ cd redis-3.0.6$ make   2、编译完成后,在Src...
    99+
    2023-01-31
    集群 redis
  • ***测试实践教程3
    特别声明:本文仅供在校大学生个人学习信息安全知识,不可用于其他用途。转载本文须声明来源,并引述本声明。网络数据分析利器——Wireshark 1我们从Wireshark的安装开始讲起……1.0 安装WiresharkWireshark提供了...
    99+
    2023-01-31
    测试 教程
  • 微信开发教程(3)
    因为微信现在可以开通自定义菜单,很多人都不知道如何创建自定义菜单。我今天来分享一下,自定菜单如何创建! 下面直接看代码:<php //根据申请到的appid要获取access_toke值,https://api.weixin...
    99+
    2023-01-31
    教程
  • Python 3 | 菜鸟教程 (一)
    目录 一、Python3 简介 二、Python 发展历史 三、Python 特点 (一)易于学习 (二)易于阅读 (三)易于维护 (四)一个广泛的标准库 (五)互动模式 (六)可移植 (七)可扩展 (八)数据库 (九)GUI编程 (十)可...
    99+
    2023-08-31
    python 开发语言 编辑器 ide linux
  • Redis-3. Redis高级命令
    高级命令三:主从复制1、主从复制:目的是实现读写分离·Master可以拥有多个slave·多个slave可以连接同一个Master外,还可以连接其他的slave·主从复制不会阻塞master,在同步数据时,master可以继续处理clien...
    99+
    2023-01-31
    命令 高级 Redis
  • NumPy 超详细教程(3):ndarr
     系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代   ndarray 对象的内部机理 在前面的内容中,我们已经...
    99+
    2023-01-31
    教程 详细 NumPy
  • php面向对象教程3
    5.如何实例化对象我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了。当定义好类后,我们使用new 关键字来生成一个对象。$对象名称= new 类名称();<phpcla...
    99+
    2023-01-31
    面向对象 教程 php
  • unix基础教程3 通信
    1、内部通信系统 2、外部通信系统 3、即时通讯 1)交谈命令write(须在线) write username [terminal] $write npp 终端号 (多人同时登录时)...
    99+
    2023-01-31
    基础教程 通信 unix
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作