zoukankan      html  css  js  c++  java
  • redis之数据类型以及使用

    1 redis数据类型

    1. string类型:
    字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,也就是byte类型
    最大容量是512M。
    2. hash类型:
    hash用于存储对象,对象的结构为属性、值,值的类型为string。
    key:{
              域:值,
              域:值,            
              域:值,
              域:值,
              ...
    }
    3. list类型:
    列表的元素类型为string。
    key:[ 值1,值2,值3..... ]
    4. set类型:
    无序集合,元素为string类型,元素唯一不重复,没有修改操作。
    5. zset类型:
    有序集合,元素为string类型,元素唯一不重复,没有修改操作。

    2 string

    如果设置的键不存在则为添加,如果设置的键已经存在则修改

    • 设置键值

      set key value

    • 例1:设置键为name值为xiaoming的数据

      set name xiaoming

     

    • 设置键值及过期时间,以秒为单位

      setex key seconds value

    • 例2:设置键为aa值为aa过期时间为3秒的数据

      setex aa 3 aa

     

    关于设置保存数据的有效期

    # setex 添加保存数据到redis,同时设置有效期
    格式:
    	setex key time value
    # expire 给已有的数据重新设置有效期
    格式:
    	expire key time
    

     

    • 设置多个键值

      mset key1 value1 key2 value2 ...

    • 例3:设置键为a1值为python、键为a2值为java、键为a3值为c

      mset a1 python a2 java a3 c

     

    • 追加值

      append key value

    • 例4:向键为a1中追加值haha

      append a1 haha

     

    • 获取:根据键获取值,如果不存在此键则返回nil

      get key

    • 例5:获取键name的值

      get name

    • 根据多个键获取多个值

      mget key1 key2 ...

    • 例6:获取键a1、a2、a3的值

      mget a1 a2 a3

     

    3 键操作

    • 查找键,参数⽀持正则表达式

      keys pattern

    • 例1:查看所有键

      keys *

    • 例2:查看名称中包含a的键

      keys a*

    • 判断键是否存在,如果存在返回1,不存在返回0

      exists key1

    • 例3:判断键a1是否存在

      exists a1

    • 查看键对应的value的类型

      type key

    • 例4:查看键a1的值类型,为redis⽀持的五种类型中的⼀种

      type a1

    • 删除键及对应的值

      del key1 key2 ...

    • 例5:删除键a2、a3

      del a2 a3

    • 设置过期时间,以秒为单位

    • 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除

      expire key seconds

    • 例6:设置键a1的过期时间为3秒

      expire a1 3

    • 查看有效时间,以秒为单位

      ttl key

    • 例7:查看键bb的有效时间

      ttl bb

     

    4 hash

    • 设置单个属性

      hset key field value

    • 例1:设置键 user的属性namexiaohong

      hset user name xiaohong

    • 设置多个属性

      hmset key field1 value1 field2 value2 ...

    • 例2:设置键u2的属性namexiaohong、属性age11

      hmset u2 name xiaohongage 11

    • 获取指定键所有的属性

      hkeys key

    • 例3:获取键u2的所有属性

      hkeys u2

    • 获取⼀个属性的值

      hget key field

    • 例4:获取键u2属性name的值

      hget u2 name

    • 获取多个属性的值

      hmget key field1 field2 ...

    • 例5:获取键u2属性nameage的值

      hmget u2 name age

     

    • 获取所有属性的值

      hvals key

    • 例6:获取键u2所有属性的值

      hvals u2

    • 删除属性,属性对应的值会被⼀起删除

      hdel key field1 field2 ...

    • 例7:删除键u2的属性age

      hdel u2 age

    5.  list

    列表的元素类型为string

    按照插⼊顺序排序

    • 在左侧插⼊数据

      lpush key value1 value2 ...

    • 例1:从键为a1的列表左侧加⼊数据a 、 b 、c

      lpush a1 a b c

    • 在右侧插⼊数据

      rpush key value1 value2 ...

    • 例2:从键为a1的列表右侧加⼊数据0、1

      rpush a1 0 1

    • 在指定元素的前或后插⼊新元素

      linsert key before或after 现有元素 新元素

    • 例3:在键为a1的列表中元素b前加⼊3

      linsert a1 before b 3

     

    设置指定索引位置的元素值

    • 索引从左侧开始,第⼀个元素为0

    • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

      lset key index value

    • 例5:修改键为a1的列表中下标为1的元素值为z

      lset a 1 z

     

    • 删除指定元素

      • 将列表中前count次出现的值为value的元素移除

      • count > 0: 从头往尾移除

      • count < 0: 从尾往头移除

      • count = 0: 移除所有

      lrem key count value

    • 例6.1:向列表a2中加⼊元素a、b、a、b、a、b

      lpush a2 a b a b a b

     

    • 例6.2:从a2列表右侧开始删除2个b

      lrem a2 -2 b

    • 例6.3:查看列表a2的所有元素

      lrange a2 0 -1

     

    6 set

    • 添加元素

      sadd key member1 member2 ...

    • 例1:向键a3的集合中添加元素zhangsanlisiwangwu

      sadd a3 zhangsan sili wangwu

     

    • 返回所有的元素

      smembers key

    • 例2:获取键a3的集合中所有元素

      smembers a3

     

    • 删除指定元素

      srem key

    • 例3:删除键a3的集合中元素wangwu

      srem a3 wangwu

     

    7 关于redis的几个站点地址

    中文官网: http://www.redis.cn/

    英文官网:https://redis.io

    参考命令:http://doc.redisfans.com/

     

    针对redis中的内容扩展

    flushall 清空当前数据库中的所有数据

    针对各种数据类型它们的特性,使用场景如下:
    字符串string: 用于保存一些项目中的普通数据,只要键值对的都可以保存,例如,保存 session,定时记录状态
    哈希hash:用于保存项目中的一些字典数据,但是不能保存多维的字典,例如,商城的购物车
    列表list:用于保存项目中的列表数据,但是也不能保存多维的列表,例如,队列,秒杀,医院的挂号
    无序集合set:用于保存项目中的一些不能重复的数据,可以用于过滤,例如,投票海选的时候,过滤候选人
    有序集合zset:用于保存项目中一些不能重复,但是需要进行排序的数据,分数排行榜.
    
    
  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/Mixtea/p/10595636.html
Copyright © 2011-2022 走看看