欢迎投稿

今日深度:

二:redis 的hash类型相关操作,redishash

二:redis 的hash类型相关操作,redishash


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

    0.2:hsetnx
            设置hash field 为指定值,如果不存在,则创建,如果存在则返回0
            例子:hsetnx user:002 name leyangjun
    1:hmset:设置多个哈希表的字段值
            同时设置hash的多个field
            例子:hmset user003 name leyangjun age 23 sex 1   -->对哈希表003设置值成功
            hget获取: hget user:003 name    -->获取哈希表003 name的值
    2:hget
            获取指定的hash field值
            例子:hget user003 name      -->表明  字段
    3: hmget
            获取全部指定的hash field
            例子:hmget user:003 name age sex
    4:hincrby (对某个值就行自)
            指定的hash field加上给定值
            例子:hincrby user:003 age 5  -->给原来age的值 加 5  20+5
    5: hexists
            测试指定的field是否存在
            例子: hexists user:003 sex   -->判断hash表字段是否存在
    6:hlen
            返回指定hash表中所有的field数
            例子:hlen user003
    7:hdel
            删除指定hash表中field的值
            例子:hdel user003 age     -->删除user003 表中age的字段
    8:hkeys
            返回hash表中所有的字段
            例子:hkeys user003
    9:hvals
            返回hash表的所有value
            例子:hvals user003   -->所有表中key对应的值
    10:* hgetall  常用
            获取某个hash中全部的field及value
            例子:hgetall user003
    =========================================END=======================================

Java 开发 2.0: 现实世界中的 Redis :Redis 如何在包含大量读取操作的应用程序中战胜 memcached

此外我还讨论过较常见基于服务器数据存储 MongoDB 和 CouchDB数据存储都有其优势和劣势特别当应用于特定领域时 本期 Java 开发 2.0 关注 Redis种轻量级键值对数据存储多数 NoSQL 实现本质上都键值对 Redis 支持非常丰富值集包括字符串、列表、集及散列因此Redis 通常被称数据结构服务器Redis 也异常快速而闻名使得特定类型使用案例优选择 当我们想要了解种新事物时其同熟知事物进行比较能会有所帮助因此我们通过对比其与 memcached 相似性开启 Redis 探索之旅接着我们介绍 Redis 主要功能些功能使其某些应用场景胜过 memcached向您展示 Redis 作传统数据存储用于模型对象Redis 和 memcached Memcached 众所周知内存对象缓存系统通过目标键和值导入内存缓存运行因此Memcached 能回避读取磁盘时发生 I/O 成本问题 Web 应用程序和数据库之间粘贴 memcached 时会产生更好读取性能因此对于些需要快速数据查询应用程序Memcached 选择例子股票查询服务需要另外访问数据库获取相对静态数据股票名称或价格信息 MemcacheDB Redis 与 memcached 相比较并公平与 MemcacheDB 相比要好MemcacheDB 分布式键值对存储系统数据持久化而设计MemcacheDB 与 Redis 较相似其新增优势使其轻松地与 memcached 实现客户端进行通信 memcached 也有其局限性事实所有值均简单字符串Redis 作 memcached 替代者支持更加丰富功能集些基准 (benchmarks) 也表明 Redis 速度要比 memcached 快Redis 提供丰富数据类型使其内存存储更复杂数据使用 memcached 无法实现同 memcached Redis 持久化其数据 Redis 解决了重大缓存问题而其丰富功能集又其找了其用途由于 Redis 能够磁盘上存储数据及跨节点复制数据因而数据仓库用于传统数据模式(也使用 Redis像使用 RDBMS 样)Redis 还经常被用作队列系统本用例Redis 备份和工作队列持久化存储(利用 Redis 列表类型)基础GitHub 此种方法使用 Redis 大规模基础架构示例准备好 Redis立即开始! 要开始使用 Redis您需要访问通过本地安装或者托管供应商来实现访问您使用 MAC安装过程简单您使用 Windows??您需要先安装 Cygwin您正寻找托管供应商Redis4You 拥有免费计划管您何种方式访问您都能够根据本文下列示例进行操作我需要指出使用托管供应商进行缓存能并缓存解决方案网络延迟能会抵消任何性能优势 您需要通过命令与 Redis 进行交互里没有 SQL 类查询语言使用 Redis 工作非常类似于使用传统 map 数据结构即所有切都拥有键和值都有多种与之关联数据类型数据类型都有其自己命令集您计划使用简单数据类型某种缓存模式使用命令 set 和 get通过命令行 shell 与 Reids 实例进行交互还有多客户端实现编程方式与 Redis 进行交互清单 1 展示了使用基础命令简单命令行 shell 交互:清单1. 使用基础 Redis 命令 redis 127.0.0.1:6379> set page registration OK redis 127.0.0.1:6379> keys * 1) "foo" 2) "page" redis 127.0.0.1:6379> get page "registration" 我通过 set 命令键 "page" 与值 "registration" 相关联接着我发出 keys 命令(缀 * 表示我想看所有实例键keys 命令显示有 page 值和 foo通过 get 命令检索键关联请记住使用 get 检索值只能字符串列表您必须使用特定列表命令来检索列表元素(注意查询值类型命令)Java 与 Jedis 集成 对于些想要 Redis 集成 Java 应用程序编程人员Redis 团队建议使用 Jedis 项目Jedis 轻量级库本地 Redis 命令映射 Java 方法 Jedis 获取并设置简单值清单 2 所示:清单2. Java 代码基础 Redis 命令 JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost"); Jedis jedis = pool.getResource(); jedis.set("foo", "bar"); String foobar = jedis.get("foo"); assert foobar.equals("bar"); pool.returnResource(jedis); pool.destroy(); 清单 2 我配置了连接池并捕获连接(与您典型 JDBC 场景操作非常相似)清单底部设置了返回操作连接池逻辑之间我设置了值 "bar" 和键 "foo"我通过 get 命令检索 与memcached 类似Redis 允许您过期(expiration)时间关联因此我设置了值(比股票临时交易价格)从 Redis 缓存清除掉我想 Jedis 设置过期时间需要发出 set 调用之其和过期时间关联清单 3 所示:清单3. Redis 值设置终止 jedis.set("gone", "daddy, gone"); jedis.expire("gone", 10); String there = jedis.get("gone"); assert there.equals("daddy, gone"); Thread.sleep(4500); String notThere = jedis.get("gone"); assert notThere == null; 清单 3 我使用了 expire 调用 "gone" 值设置 10 秒钟内终止调用 Thread.sleep 之"gone" get 调用会返回 nullRedis 数据类型 使用Redis 数据类型列表和散列需要专用命令用法通过键附加值来创建列表

redis是什么

rediskey-value存储系统和Memcached类似支持存储value类型相对更多包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富操作而且些操作都原子性此基础上redis支持各种同方式排序与memcached了保证效率数据都缓存内存区别redis会周期性把更新数据写入磁盘或者把修改操作写入追加记录文件并且此基础上实现了master-slave(主从)同步
Redis 高性能key-value数据库 redis出现大程度补偿了memcached类key/value存储部 分场合对关系数据库起补充作用提供了PythonRubyErlangPHP客户端使用方便
redis提供五种数据类型:stringhashlistset及zset(sorted set)
redis使用了两种文件格式:全量数据和增量请求

www.htsjk.Com true http://www.htsjk.com/shujukunews/1993.html NewsArticle 二:redis 的hash类型相关操作,redishash =====================二种:hash类型================== 介绍:redis - hash是一个string类型的field和value的映射表 hash特别适合对应存储对象,相较于将对象的每个...
评论暂时关闭