string是最简单的类型,一个key对应一个value,string类型是二进制安全的。redis的string可以包含任何数据,比如JPG图片或者序列化的对象

操作
    set
    设置key对应的值为string类型的value
    例如:
    set name haoxing   //设置key为那么value为haoxiang
    get name   //会得到“haoxiang”    
    注意:
    set 重复添加相同的key名会覆盖原来的值

setnx
    设置key对应的值为string类型的value,如果key不存在添加,存在返回0
    例如:
    setnx name lamp //就会返回0 如果没有存在这个key 成功返回1
    
    setex
    设置key对应的值为string类型的value,并制定此键值对对应的有效期
    例如:
    setex color 10 red
    get color //十秒内能得到值  返回"red"
    get color //十秒后获取不到  返回(nil) 表示空

setrange
    替换一个key对应的字符串的部分
    例如:
    set email haoxiang@wolecha.com
    get email //"haoxiang@wolecha.com"
    setrange email 9 163.com
    get email //"haoxiang@163.com.com"
    注意:
    替换是从第9个开始替换你写的新的字符串的长度,如果小于原字符串长度,只替换对应的字节数,并保留后面的内容

mset
    一次设置多个key的值,成功返回ok 表示所有的值都设置了,失败返回0表示没有任何值被设置
    例如:
    mset key1 haoxiang1 key2 haoxiang2
    注意:
    和set一样有相同的key 会被覆盖

msetnx
    一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何被设置,但不会覆盖已经存在的key,所有的值都不重读才成功
    
    get
    返回key对应的value的值,如果key不存在返回 nil
    例如:
    get name

getset
    设置key 的值,并返回key对应的value的旧值
    例如:
    set num 20
    get num //"20"
    getset num 30 //"20"
    get num //"30"

getrange
    获取key的对应value字符串的部分
    例如:
    set eamil haoxiang@163.com
    get email 0 7  //"haoxiang"
    
    mget
    批量获取,如果key不存在返回nil

incr
    对key对应的value值做加加操作,并返回新的值
    例如:
    set num 30
    incr num //(integer)31

incrby
    通incr类似,不过是加指定的数值,key 不存在会设置key,并认为原来的值得value是0,正为加,负为减
    例如:
    incrby num 5
    incrby num -5

decr
    对value值做减减操作

decrby
    减指定的值,正为减,负为加

append
    对value值后面追加字符串,返回新的字符串长度

strlen
    获取key 对应的value的字符串长度

hash类型及操作
redis hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个的string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

hset
    设置hash filed为指定值,如果key不存在,则先创建
    例如
    hset myhash filed1 hello    //其中myhash是hash表的名称,filed1是字段,hello是字段对应的值
    
    hsetnx
    设置hash field为指定值,如果key不存在,则先创建,存在返回0,和setnx 大同小异

hmset
    批量设置hash的多个字段的值
    例如:
    hmset myhash field1 hello field2 world

hget
    获取hash中某个字段的值
    例如:
    hget myhash field1

hmget
    同时获取多个字段的值
    例如:
    hmget myhash field1 field2 field3

hincrby
    指定的hash field 加上指定的值
    例如:
    hincrby myhash age 8

hexists
    测试hash表中的字段是否存在,存在返回1,不存在返回0
    例如:
    hexists myhash age

hlen
    返回hash表中字段的数量
    例如:
    hlen myhash

hkeys
    返回hash中所有的字段
    例如:
    hkeys myhash

hvals
    返回hash中的所有value
    例如:
    hvals myhash

hgetall
    获取hash中全部的字段及对应的value
    例如:
    hgetall myhash

hdel
    删除hash中的指定字段
    例如:
    hdel myhash age

redis 2 字符串 和 hash的更多相关文章

  1. redis 实践—— sorted set, hash set

    在这里就不谈redis的安装与启动啦,网上太多人写这个了. 从最近的一个项目[钻石夺宝]说起,如果大家有玩过一元夺宝或者全名夺宝的话,大概会知道如果参与人数多的话,每隔几秒.快的话每隔一秒都会新生成一 ...

  2. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  3. 【Redis面试题】Redis的字符串是怎么实现的?

    年前本人在找工作面试时在Redis相关问题上可栽了跟头.在面试前按常规套路准备了一下,比如 Redis 的常用5种数据结构,Redis持久化策略,Redis实现分布式锁,简单发布订阅等等都准备了,当时 ...

  4. redis之字符串命令源代码解析(二)

    形象化设计模式实战             HELLO!架构                     redis命令源代码解析 在redis之字符串命令源代码解析(一)中讲了get的简单实现,并没有对 ...

  5. redis数据类型-字符串类型

    Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...

  6. Redis 操作字符串数据

    Redis 操作字符串数据: > set name "Tom" // set 用于添加 key/value 数据,如果 key 存在则覆盖 OK > setnx nam ...

  7. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  8. Redis 数据结构-字符串源码分析

    相关文章 Redis 初探-安装与使用 Redis常用指令 本文将从以下几个部分进行介绍 1.前言 2.常用命令 3.字符串结构 4.字符串实现 5.命令是如果操作字符串的 前言 平时在使用 Redi ...

  9. mycat1.6.5分片(字符串拆分hash)

    https://blog.csdn.net/webnum/article/details/78313525   分片规则:字符串拆分hash 一.conf/schema.xml文件   <?xm ...

随机推荐

  1. ural1682 Crazy Professor

    Crazy Professor Time limit: 1.0 secondMemory limit: 64 MB Professor Nathan Mathan is crazy about mat ...

  2. linux shell——md5sum,sha1sum,sort,uniq (转)

    1.文件校验 1. md5sum eg: md5sum filename 注:生成一个128位的二进制位,即32位的十六进制字符串 1.验证文件的正确性: md5sum  file1 file2 &g ...

  3. expected: file:///

    [java] java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.190.128:9000/user/hadoop/output/ ...

  4. .net core 13

  5. Linux批量部署工具Expect

    既然没有遇到过,做好准备总是好的.这是自己送给自己的话,现在运维做自动话越来越多,自己就学以下,记录笔记.目前主流的有puppet.Expect.pssh等等,今天就用Expect做自动部署和日常管理 ...

  6. java中基本数据类型和C语言中基本数据类型转换

    java中 1 short = 2 byte 1 char  = 2 byte 1 int    = 4 byte 1 long = 8 byte C语言中 typedef unsigned char ...

  7. USACO刷题之路

    重拾经典 本科生涯结束了,在大学做的ACM竞赛现在基本忘的差不多了.USACO作为一个经典的题库,本来是面向OI选手的,但是由于题目质量很高所以受到大家的好评,所以我这次就从它开始我的刷题之路吧. 由 ...

  8. 伸展二叉树树(C#)

    参考过好几篇关于将伸展树的代码,发现看不懂.看图能看懂原理.就尝试自己实现了下. 自顶向上的算法. using System; using System.Collections.Generic; us ...

  9. hibernate--多对一单向关联 (重点!!!)

    一个用户组包含多个用户, 每个用户属于一个组. 一个人可以有多个车, 每个车属于一个人. 一个人有很多梦想, 一个特定的梦想属于一个人. 错误做法: person里 有 personid, perso ...

  10. CMU机器学习课程-简介

    CMU在机器学习研究领域大名鼎鼎,Tom Mitchell 即是该学校老师.学校开设有机器学习课程.如今机器学习应用的领域越来越广泛,之前传统的<机器学习>课程,现在分成一般非机器学习领域 ...