redis的五种数据类型

目录

一、String数据类型

1、String数据类型概述

2、string 数据类型常用命令

1、set 设置指定 key 的值

2、get 获取指定 key 的值

3、append key values

4、exists key:判断该键是否存在

5、strlen key:获取指定key的字符长度

6、incr key:key值递增加1(key值必须为整数)

7、decr key:该Key的值递减1

8、getset :获取key值并返回,同时给key设置新值

9、incrby :减少指定的整数

10、decrby :增加指定的整数

11、setex :设置指定key的过期时间

12、setnx:不存在键的话执行set操作,存在的话不执行

13、mset:批量设置键对

14、mget:批量获取就键对

15、msetnx:批量设置键-值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0

二、list 数据类型

1、list 数据类型概述

2、list 数据类型常用类型

1、lpush(设置,创建):在头部(左侧left)依次插入列表元素

2、lpushx(相当于插入,从左侧插入):键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量

3、lrange(获取,以下标索引的方式获取) :取从位置索引start到位置索引stop的所有元素(索引以0开始)

4、lpop :移除并返回mykey键的第一个元素,即从右往左第一个

5、lrem:从头部开始删除count个值为value的元素,并返回实际删除数量

6、lset:将位置索引为index的元素设置新值value

7、lindex:获取索引为index的元素

8、ltrim:仅保留从位置索引start到索引stop的元素

9、linsert :插入元素(利用before、after在指定元素前后插入)

10、rpush : 在列表的尾部依次插入value

11、rpushx :key必须存在才可执行,将value从尾部插入,并返回所有元素数量

12、rpop:在尾部弹出(移除)一个元素,并返回该元素

13、rpoplpush :在key1的尾部弹出一个元素并返回,将它插入key2的头部

三、Hash数据类型 (散列类型)

1、Hash数据类型概述

2、Hash数据类型常用命令

1、hset :给键值为myhash的键设置字段为##,值为##

2、hget:获取键值为##,字段为##的值

3、hdel:删除##键中字段名为##的字段

4、hexists:判断##键中是否存在##字段

5、hlen:命令获取##键的字段数量

6、hsetnx:通过hsetnx命令给##添加新字段##,其值为##,因为该字段已经被删除,所以该命令添加成功并返回1

7、hincrby:给键的字段的值加1

8、hgetall:获取键的所有字段及其值

9、hkeys:获取键中所有字段的名字

10、hvals:获取键中所有字段的值

11、 hmset:批量设置键的字段值

12、hmget:批量获取键的字段值

四、set数据类型(无序集合)

1、set数据类型概念

2、set数据类型常用命令

1、sadd:插入测试数据

2、smembers:查看插入的结果是否存在

3、scard:获取Set集合中元素的数量

4、sismember:判断f是否已经存在,返回值为0表示不存在

5、spop:随机的移除并返回set中的某一成员

6、srem:移除指定元素

7、srandmember:随机返回集合中的某一员

8、smove

五、Sorted Set数据类型 (zset、有序集合)

1、Sorted Set数据类型概述

2、Sorted Set数据类型常用命令

1、zadd :添加成员

2、zcard:获取成员数量

3、zcount:zcount key min max,分数满足表达式1 <= score <= 2的成员的数量

4、zrem:删除指定成员

5、zincreby:将成员one的分数增加-1,并返回该成员更新后的分数

6、zscore:获取成员的分数

7、zrange

8、zrank:获取成员的索引值


一、String数据类型

1、String数据类型概述

       String是 redis 最基本的类型,最大能存储 512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等。

2、string 数据类型常用命令

1、set 设置指定 key 的值

127.0.0.1:6379> set lisi shangjia     ## 给key:lisi 赋值shangjia
OK
127.0.0.1:6379> get lisi              ## 获取键:lisi的值
"shangjia"

2、get 获取指定 key 的值

127.0.0.1:6379> get a3
"3"

3、append key values

如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。(若键不存在,则相当于创建)

127.0.0.1:6379> exists home            ## 检测键:home是否存在
(integer) 0                            ## 返回值为0,表示不存在
127.0.0.1:6379> append home "cat"      ## 原值不存在,此时相当于添加值
(integer) 3
127.0.0.1:6379> get home               ## 获取键:home的值
"cat"
127.0.0.1:6379> append home "dog"      ## 原键存在值,此时相当于在原值的基础上进行追加
(integer) 6
127.0.0.1:6379> get home               ## 获取键:home的值。呈追加状态
"catdog"

4、exists key:判断该键是否存在

存在返回1,不存在返回0

127.0.0.1:6379> exists v5           ## 查询键:v5的是否存在并显示值
(integer) 1                         ## 返回值为1,表示存在
127.0.0.1:6379> get v5              ## 获取键:v5的值
"5"
127.0.0.1:6379> exists wangwu       ## 查询键wangwu是否存在并显示值
(integer) 0                         ## 返回值为0,表示不存在
127.0.0.1:6379> get wangwu         
(nil)

5、strlen key:获取指定key的字符长度

127.0.0.1:6379> strlen v5
(integer) 1
127.0.0.1:6379> strlen home
(integer) 6

6、incr key:key值递增加1(key值必须为整数)

127.0.0.1:6379> set a 34     ## 设置key:a的values为34
OK
127.0.0.1:6379> incr a       ## key值递增加1
(integer) 35
127.0.0.1:6379> get a        ## 验证为递增加一 
"35"

7、decr key:该Key的值递减1

127.0.0.1:6379> get a       
"35"
127.0.0.1:6379> decr a         ## key值递减1
(integer) 34
127.0.0.1:6379> get a
"34"

8、getset :获取key值并返回,同时给key设置新值

127.0.0.1:6379> getset m5 666         ## 键m5键值不存在情况下,直接赋予值为666
(nil)
127.0.0.1:6379> get m5
"666"
127.0.0.1:6379> getset m5 777         ## 当存在时,覆盖原值。为777
"666"
127.0.0.1:6379> get m5
"777"

9、incrby :减少指定的整数

127.0.0.1:6379> set b 20        ### 设置键b值等于5
OK
127.0.0.1:6379> incrby b 5      ### 设置递增为5       
(integer) 25                          
127.0.0.1:6379> incrby b 5     
(integer) 30

10、decrby :递减指定的整数

127.0.0.1:6379> get b               ## 获取键值
"12"
127.0.0.1:6379> decrby b 3          ## 设置递减整数为3
(integer) 9
127.0.0.1:6379> decrby b 3
(integer) 6

11、setex :设置指定key的过期时间

redis: -1 往往代表的是一个上限,表示所有的意思
        : -2 表示的失效/过期

127.0.0.1:6379> setnx b 30             ## 当键名为b值为30不存在时则创建
(integer) 1
127.0.0.1:6379> ttl b                  ## 查看键b的键值对有效时间
(integer) -1                                  ## 默认为永久失效
127.0.0.1:6379> setex b 10 30                 ## 设置键值对b、30失效时间为10秒
OK
127.0.0.1:6379> ttl b                         
(integer) 8
127.0.0.1:6379> ttl b
(integer) 7
127.0.0.1:6379> ttl b
(integer) 6
127.0.0.1:6379> ttl b
(integer) 3
127.0.0.1:6379> ttl b                          ## 返回值为-2,键值对失效
(integer) -2
127.0.0.1:6379> get b                          ## 获取键值对。值为nil
(nil)

12、setnx:不存在键的话执行set操作,存在的话不执行

127.0.0.1:6379> get c                  ## 获取键值对,返回值为nil,不存在
(nil) 
127.0.0.1:6379> set c 40               ## 设置键值对c、40
OK
127.0.0.1:6379> setnx c 40             ## 设置键值对c、40,返回值为0.说明已存在,设置失败
(integer) 0 
127.0.0.1:6379> setnx d 40             ## 设置键值对d、40 ,返回值为40,设置成功
(integer) 1 
127.0.0.1:6379> get c                  ## 获取键值对
"40"
127.0.0.1:6379> get d                   ## 获取键值对
"40"

13、mset:批量设置键对

14、mget:批量获取就键对

127.0.0.1:6379> mset a 10 b 20 c 30 d 40    ## 批量设置键值对
OK
127.0.0.1:6379> mget a b c d                ## 批量获取键值对
1) "10"
2) "20"
3) "30"
4) "40"

15、msetnx:批量设置键-值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0

127.0.0.1:6379> msetnx c 30 d 50 e 60    ## 批量设置键值对设置条件,当有一个存在时,整条不生效
(integer) 0                              ## 返回值为0,不生效

127.0.0.1:6379> mget c d e             ## 批量获取键值对,由于c和d 存在,以上设置e没生效为nil
1) "30"
2) "40"
3) (nil)

二、list 数据类型

1、list 数据类型概述

List 列表是简单的字符串列表,按照插入顺序排序,可以从头部或尾部向 List 列表添加元素。

2、list 数据类型常用类型

1、lpush(设置,创建):在头部(左侧left)依次插入列表元素

127.0.0.1:6379> lpush ceshi a b c d e               
(integer) 5

2、lpushx(相当于插入,从左侧插入):键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量

127.0.0.1:6379> lpushx ceshi01 g        ## 从左侧插入g
(integer) 4
127.0.0.1:6379> lrange ceshi01 0 -1    ## 取链表中的全部元素,其中0表示第一个元素,-1表示最后一 
                                       ## 一个元素
1) "g"
2) "h"
3) "f"
4) "e"

127.0.0.1:6379> rpushx ceshi01 a       ## 从右侧添加元素  
(integer) 5

127.0.0.1:6379> lrange ceshi01 0 -1    ## 显示所有元素
1) "g"
2) "h"
3) "f"
4) "e"
5) "a"

3、lrange(获取,以下标索引的方式获取) :取从位置索引start到位置索引stop的所有元素(索引以0开始)

127.0.0.1:6379> lrange ceshi01 0 -1    ## 显示所有元素
1) "g"
2) "h"
3) "f"
4) "e"
5) "a"

127.0.0.1:6379> lrange ceshi01 0 0      ## 获取该键的List Value的头部元素
1) "g"

4、lpop :移除并返回mykey键的第一个元素,即从右往左第一个

127.0.0.1:6379> lpush mykey a b c d   
(integer) 4
127.0.0.1:6379> lrange mykey 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> lpop mykey              ##移除并返回mykey键的第一个元素
"d"
127.0.0.1:6379> lrange mykey 0 -1
1) "c"
2) "b"
3) "a"


127.0.0.1:6379> llen mykey           ## 获取表中元素数量,在执行lpop命令两次后,链表头部的两
           
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值