文档章节

Redis学习笔记---数据类型一(string、list、hash)

ivan-Zhao
 ivan-Zhao
发布于 2015/12/12 17:04
字数 939
阅读 90
收藏 4

一、string

     string字符串类型是字符串redis最基本的数据类型,可以存储任何形式的内容包括图片,string类型的可以存储的最大容量是1G。
    命令:
   ① set key value/get key 创建键值对和获取 

        举例:set a 3/get a

   ② setnx key value 如果key已经存在则不会再添加

   ③ mset/mget 批量设置和获取

        举例: mset b 2 c3 ...  mget b c 

   ④ incr/decr/incrby/decrby/incrbyfloat 对某个键值递增递减、按照步长递增和递减

        举例:incr/decr a   incrby/decrby a 2 incrbyfloat a 0.1

    ⑤append  

        举例:append name aaa  相当于字符串拼接

    ⑥strlen  获取字符串的长度 

        举例:strlen name

二、list

      介绍:    
      list是一个有序的字符串列表,列表内部实现使用双向列表(linked list)实现的,list也可以作为一个队列进行使用
    命令:
   ① lpush/rpush/lpop/rpop  左右插入 左右弹出

        举例:lpush list 1 lpush 2 rpush 3 rpush 4 list中的值的顺序是:2134  也可以使用lpush list 5 2 3 4 添加多个值
        pop是弹出,弹出后列表中的数据就没了,既是出栈操作
        lpush和rpop组合起来就是一个先进先出的队列
   ②llen/lrange(-1表示最后一个元素的位置) llen是返回list列表的长度
        lrange取出指定范围的数据,下标从0开始到llen-1  lrang 0 -1 表示取出list中所有的数据集合
   ③lrem(lrem key count value)count分为三种情况  删除
        count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
        count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
        count = 0 : 移除表中所有与 value 相等的值。
   ④lindex(查询指定角标数据)  

        举例:lindex list 2 获取list中角标为2的元素

   ⑤lset(修改)    

        举例:lset list 2 6 将list角标为2的数据修改为6
   ⑥ltrim(截取)

        举例:ltrim list 0 2 截取list列表,从角标0到2
   ⑦linsert(向指定元素前后插入元素)  

        举例:linsert list before/after 6 2在list列表的元素6前后插入一个数据2
   ⑧rpoplpush:将元素从一个列表转到另一个列表  rpopllist list list1  将list中的元素又边弹出一个从左侧插入到list1

三、hash

    介绍:
    hash类型存储了字段与字段值的映射,就是java中的map对象那样,hash的字段与字段值必须是字符串,不支持其他的数据类型,hash的键最多可以存储2的三十二次方减一的字段
    hash适合存储的对象如下图:
    对一个user对象可以存为键是user的与id的组合,字段是属性,字段值即属性值,redis中可以动态的增减字段与字段值,不会像关系型数据库那样造成数据的冗余
                                                    普通关系型数据库存储方式


                                        redis存储方式
    命令:
    ①hset/hget/hmset/hmget/hgetall(hsetnx)
    

        举例:hset user:100 name zhangsan

        hset user:100 age 20
        hget user:100 name/age
        hmset user:100 gender 0 birthday 1990-11-03
        hmget user:100 gender birthday
        hgetall顾名思义,hsetnx和string的setnx一样,如果字段存在则不插入
    ②hexists,判断键中的属性是否存在  hexists user:100 name
    ③hincrby(hash类型没有hincr命令) hincrby user:100 age 2
    ④hdel  hdel user:100 gender
    ⑤hkeys/hvals  hkeys/hvals user:100  获取键的所有字段/字段值
    ⑥hlen(获取键中包含多少个字段)



© 著作权归作者所有

共有 人打赏支持
ivan-Zhao
粉丝 9
博文 32
码字总数 26819
作品 0
深圳
程序员
私信 提问
Redis学习笔记~Redis提供的五种数据结构

分布式缓存,消息队列,替代Session呵呵(Session太不稳定了,呵呵)=Redis Redis的崛起绝非偶然,它确实有自己的新东西在里面,它不像Memcached,只能将数据存储在内存中,它提供了持久化机...

mcy247
2017/12/07
0
0
redis在php中常用的语法(转)

String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 $redis->brpoplpush(); $redis->sUnionSt...

DavidLoseYourself
2018/08/21
0
0
Redis学习笔记之Redis数据类型(四)

Redis的五大数据类型 1.1 String(字符串) String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思...

残风vs逝梦
2016/08/07
44
0
Redis学习笔记之基本数据结构

Redis基础数据结构 Redis有5种基本数据结构:String(字符串)、list(列表)、set(集合)、hash(哈希)、zset(有序集合) 字符串string 字符串类型是Redis的value最简单的数据结构,类似与Java语言...

smileNicky
2018/09/26
0
0
redis命令及对应jedis操作(一)-String类型

我们知道学习编程知识,先要搭建环境,首先需要下载redis工具包,下载时需要注意,redis的偶数版是表示稳定版(2.4,2.6等),奇数版表示非稳定版(2.5,2.7等),我下载的是2.6的,最新版本...

laoyao
2014/07/26
0
3

没有更多内容

加载失败,请刷新页面

加载更多

指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

天王盖地虎626
41分钟前
3
0
Qt那些事0.0.18

今天要记一下Qt中的Resource。自我感觉理解的不错,但是还会难免有谬误,在日后有可能会更新,也有可能不会。 小声的念叨一句,女人心,海底针。 今天就直接跳过了关于QML在qrc文件中的介绍,...

Ev4n
49分钟前
2
0
深入解析js的作用域、预解析机制

虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用域及预解析机制。 概念: 作用域:域,指的是一个空间、范围、区域,...

前端攻城老湿
52分钟前
2
0
Spring Cloud Feign - 声明式 REST Client

1、Feign是什么 声明式REST client,来自NetFlix。 允许你编写无实现代码调用REST services 替换RestTemplate(甚至更简单) Spring Cloud 为使用Feign提供了包装器 2、怎样使用Feign 对比:...

Benz001
57分钟前
5
0
前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
59分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部