美文网首页
Redis入门 - 数据结构

Redis入门 - 数据结构

作者: zwm0800 | 来源:发表于2017-07-18 10:34 被阅读0次

redis 支持的数据类型

redis 支持以下五种数据类型,其中比较常用的是哈希(Hash)和字符串(String)。

  • 字符串(String)
  • 字符串列表(List)
  • 有序字符串集合(Sorted set)
  • 哈希(Hash)
  • 字符串集合(Set)

同时,redis是Key-Value形式的数据库。因此,在使用redis时对Key定义注意以下几点:

  • 不要太长,不超过1024字节,这不仅会降低查询效率,同时会消耗内存
  • 不要太短,可读性差,使用Key设置为x
  • 同一项目中,命名尽量统一规范

存储String类型

字符串在redis中是使用二进制形式存储,其中value最大支持数据的长度为:512M。对于字符串操作常用命令有:

  • 赋值:set
  • 取值:get
  • 先取值再赋值:getset
  • 删除:del
  • 数值增减:incr / decr
  • 扩展:incrby / decrby,append
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> getset name tom  // 先取出原有name的值,再设置新值为tom
"jack"
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set age 10
OK
127.0.0.1:6379> incr age    // 递增
(integer) 11
127.0.0.1:6379> get age
"11"
127.0.0.1:6379> decr age  // 递减
(integer) 10
127.0.0.1:6379> get age
"10"

incr和decr命令只能操作整形数据,如果操作的key不存在,则会先创建对应key,再初始化值为0再递增1。如果操作的key不能转换成整形时,将报错误信息。

127.0.0.1:6379> get number
(nil)
127.0.0.1:6379> incr number
(integer) 1
127.0.0.1:6379> get number
"1"
127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> get name
"hello"
127.0.0.1:6379> incr name
(error) ERR value is not an integer or out of range
127.0.0.1:6379> 

incrby和decrby命令是增加/减少指定的值

127.0.0.1:6379> incrby number 1000
(integer) 1001
127.0.0.1:6379> get number
"1001"
127.0.0.1:6379> decrby number 5
(integer) 996
127.0.0.1:6379> get number
"996"

append:拼接字符,返回的为字符串的长度

127.0.0.1:6379> append name world
(integer) 10
127.0.0.1:6379> get name
"helloworld"
127.0.0.1:6379>

存储Hash

redis中的Hash类型是字符串与字符串之间的映射,适合存储值对象的信息,比如用户名,密码,年龄……常用指令有:

  • hset
  • hget
  • hmset
  • hmget
  • hgetall
  • hvals
  • hdel
  • hexists
127.0.0.1:6379> hset user username admin        // 设置对象的属性
(integer) 1
127.0.0.1:6379> hget user username                  // 获取对象的属性
"admin"
127.0.0.1:6379> hmset user age 21 sex 0
OK
127.0.0.1:6379> hmget user age sex username    // 批量设置key、value
1) "21"
2) "0"
3) "admin"
127.0.0.1:6379> hgetall user        // 获取对象的所有key
1) "username"
2) "admin"
3) "age"
4) "21"
5) "sex"
6) "0"
127.0.0.1:6379> hvals user    // 获取对象所有value
1) "admin"
2) "21"
3) "0"
127.0.0.1:6379> hdel user age    // 删除对象的属性
(integer) 1
127.0.0.1:6379> hget user age
(nil)
127.0.0.1:6379> hexists user password   // 判断属性是否存在
(integer) 0
127.0.0.1:6379> hexists user username
(integer) 1

相关文章

  • Redis基本操作

    Redis Redis入门   Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓...

  • 华为云学院带你7天入门Redis(4)

    华为云学院带你7天入门Redis(4) Redis实例配置参数 1、操作场景和限制介绍 什么是数据结构? 1.基于...

  • Redis学习札记

    本文是Redis入门指南的阅读笔记,同事推荐的,通过本书了解到了很多Redis支持的数据结构、很多应用场景等。基本...

  • 项目笔记4-高性能存储

    redis入门 Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈...

  • 【Redis缓存】- Redis数据结构、基本命令操作、持久化

    一、Redis 数据结构 要想使用 Redis 进行数据存储,首先需要了解 Redis 的数据结构,redis存储...

  • Redis入门 - 数据结构

    redis 支持的数据类型 redis 支持以下五种数据类型,其中比较常用的是哈希(Hash)和字符串(Strin...

  • Redis入门--数据结构

    学习笔记 Redis的数据结构的编码 常说的Redis五种基本数据结构string、list、hash、set、z...

  • Redis

    Redis 关系型和非关系数据库比较: redis数据结构 redis列表数据结构 案例 概念: redis是一款...

  • 一些挺不错的博客/学习网址

    Redis学习: 官方文档:redis中文网 基本入门:Redis入门视频教程-慕课网、Redis 教程 | 菜鸟...

  • Redis设计与实现-笔记(一)

    数据结构与对象 Redis的底层数据结构,了解Redis的底层数据结构有助于我们更好的运用Redis。 SDS R...

网友评论

      本文标题:Redis入门 - 数据结构

      本文链接:https://www.haomeiwen.com/subject/vnlwhxtx.html