Redis学习(2)-数据类型String和Hashes

Redis的数据类型

(1)Strings类型及操作
String是最简单的类型,一个Key对应一个Value,string类型是二进制安全的,Redis的string可以包含任何数据,比如jpg图片或者序列化的对象

1.Set
  设置key对应的值为string类型的value
  例如:我们添加一个name=hello的键值对
  命令:set name hello
2.Get
  获取key对应value的值
  命令:get name
3.Setnx
  设置key对应的值为string类型的value,如果key
  已经存在,返回0,nx是not exist的意思
  命令:setnx name hello
  拓展Getnx
4.Setex
  设置key对应的值为string类型的value,并指定此键值对应的有效期
  命令:setex haircolor 10 red
  10为10秒
5.Setrange
  设置指定key的value值的字符串
  例如:我们希望lijie的126邮箱替换为gmail邮箱
  set name [email protected]
  命令:setrange name 6 gmail.com
6.mset
  一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置
7.msetnx
  一次设置多个key值,成功返回ok表示所有的值都设置了失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key
8.getset
  设置key的值,并返回key的旧值
9.getrange
  获取key的value值的子字符串
10mget
  一次获取多个key的值,如果对应key不存在,则对应返回nil
11.incr
  对key的值做加操作,并返回新的值
12.incrby
  同incr类似,加指定值,key不存在时候会设置key并认为原来的value是0
13.append
  给指定key的字符串追加value,返回新字符串值的长度

--------------------------------------------------------华丽的分割线--------------------------------------------------
(2)hashes类型及操作
Redis hash是一个string类型的field和value的映射表,它的添加、删除操作都是O(1)(平均)hash特别适合用于存储对象,相较于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象
1.hset
  设置hash field为指定值,如果key不存在,则先创建
  hset  user:001 name miao
2.hsetnx
  设置hash field为指定值,如果key不存在,则先创建,
  如果存在返回0
3.hmset
  命令:hmset user:002 name miao sex 1
4.hget
  命令:hget user:002 name
5.hincrby
  命令:hincrby user:name age 6
6.hexists
  测试指定field是否存在
7.hlen
  返回hash中的field数量
8.hdel
  删除hash中的field
  hdel user:002 age
9.hkeys
  命令:hkeys user:002
10.hvals
  命令:hvals user:002
11.hgetall
  命令:获取某个hash的全部field及value

时间: 2024-11-15 00:40:59

Redis学习(2)-数据类型String和Hashes的相关文章

Redis 学习子数据类型

该文使用centos6.5 64位 redis-3.2.8 [[email protected] bin]# netstat -tunpl |grep 6379  查看redis 是否启动成功 一.String类型 String是最简单的类型,一个key对应一个Value,string类型是二进制安全的.redis的string可以包含任何数据类型,比如jpg图片或者序列化的对象. 1.set方法:设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的valu

REDIS学习笔记 之 STRING数据类型

作者:邹祁峰 邮箱:[email protected] 博客:http://blog.csdn.net/qifengzou 日期:2014.10.11 转载请注明来自"祁峰"的CSDN博客 1 简单概述 String数据类型是Redis中最简单.最基础的数据类型,Redis中所有的KEY和VALUE都是String类型,且其他更为复杂的数据类型(LISTS.SETS.SORTED-SETS.HASHES)也均基于String数据类型来存储的.String数据类型是二进制安全的,也就是说

Redis学习之数据类型List详解

本文和大家分享的主要是redis数据类型中的list相关内容,一起来看看吧,希望对大家学习redis有所帮助. list即链表,它是一个能维持数据先后顺序的列表,便于在表的两端追加和删除数据,中间位置的存取具有O(N)的时间复杂度,是一个双向链表. 一.内部原理 redis内部实现代码在quicklist.c(注释:A doubly linked list of ziplists)中,它确实是一个双向链表,并且是一个ziplist双向列表. ziplist是什么? 一个经过特殊编码的的双向链表,

Redis 学习(二) —— 数据类型及操作

Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个字符串最大为 512M 字节.字符串数据类型适用于很多场景,例如,缓存 HTML 片段或者页面. Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串可以包含任意类型的数据,例如一张 JPEG 图像,或者一个序列化的对象. 我们可以把字符串当做位数组(位图)来处理,很容易统计一些基于

redis学习-sds数据类型

今天开始了redis的学习,本来想直接从源码看起的,不过看到有篇对redis介绍的基础教程 <Redis 设计与实现(第一版)> 于是决定从这个开始入门. 1.数据类型定义 typedef char *sds; struct sdshdr { // buf 已占用长度 int len; // buf 剩余可用长度 int free; // 实际保存字符串数据的地方 char buf[]; }; 2.重新计算新的长度 newlen = sdshdr.len + required_len if n

Redis学习(4)-数据类型set和zset

Set数据类型及操作 Set集合是通过hash table实现的,所以添加.删除和查找的复杂度都是O(1),hash table会随着添加或者删除自动的调整大小,需要注意的是 hash table大小时候需要同步(获取写锁)会阻塞其他读写操作,可能不久后就会改用跳表(skip list)来实现,跳表已经在sorted set中使用了,关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersetion),差集(difference),通过这些操作

Redis学习(3)-数据类型List

list类型及操作List是一个链表结构,主要的功能是push.pop获取一个范围的所有值等等,操作中key理解为链表的名字,Redis的list类型其实就是一个每子元素都是string类型的双向链表,我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列 1.lpush 在key对应list的头部添加字符串元素 在此处我们先插入一个world,然后在world的头部插入一个hello,其中lrange是用于取mylist的内容. 命令: lp

Redis学习笔记——数据类型及操作

数据操作 redis是key-value的数据,所以每个数据都是一个键值对 键的类型是字符串 值的类型分为五种: 字符串string 哈希hash 列表list 集合set 有序集合zset 数据操作的全部命令,可以查看http://redis.cn/commands.html 接下来逐个介绍操作各类型的命令 string string是redis最基本的类型 最大能存储512MB数据 string类型是二进制安全的,即可以为任何数据,比如数字.图片.序列化对象等 命令 设置 设置键值 set

redis学习笔记——数据类型

对象处理机制 Redis 构建了自己的类型系统,这个系统的主要功能包括:• redisObject 对象.• 基于redisObject 对象的类型检查.• 基于redisObject 对象的显式多态函数.• 对redisObject 进行分配.共享和销毁的机制. (redisObject 实际上是只是一个结构类型.) redisObject 的定义位于redis.h :/** Redis 对象*/typedef struct redisObject {// 类型unsigned type:4;