Redis五种数据类型及常用操作

①结构图:


②Redis_key键

   keys *                   -- 查看当前库所有数据

   exists key的名字   --普安段某个key是否存在  1 代表存在, 0代表不存在

   move key db        --移除key到指定分库

   expire key(秒)     --设置过期时间   

   ttl key                    --查看过期时间  -1 代表永不过期 -2代表已过期

   type key                --查看类型

127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> move k1 2
(integer) 1
127.0.0.1:6379[15]> select 2
OK
127.0.0.1:6379[2]> keys * 
1) "k1"
127.0.0.1:6379[2]> ttl k1
(integer) -1
127.0.0.1:6379[2]> expire k1 10
(integer) 1
127.0.0.1:6379[2]> type k1
string

③Redis_String(单值单value)

        set/get/del/append/strlen                                                --设值/取值/删除/追加/长度

        incr/decr/incrby/decrby                                                    --加1/减1/相加/相减

        getrange/setrange                                                             --范围内取值/范围内设值

        setex(set with expire) 键秒值/setnx(set if not exist)        --set with expire/set if not exist

        mset/mget/msetnx                                                            --设多值/取多值/原子性设值,要么都成功,要么都不成功

        getset(先get再set)                                                            --先取值后设值

<set/get/del/append/strlen>示例:

127.0.0.1:6379> set k1 redis
OK
127.0.0.1:6379> get k1
"redis"
127.0.0.1:6379> append k1 start
(integer) 10
127.0.0.1:6379> get k1
"redisstart"
127.0.0.1:6379> strlen k1
(integer) 10
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> get k1
(nil)

<incr/decr/incrby/decrby>示例:

127.0.0.1:6379> incr k1
(integer) 1
127.0.0.1:6379> incr k1
(integer) 2
127.0.0.1:6379> decr k1
(integer) 1
127.0.0.1:6379> incrby k1 2
(integer) 3
127.0.0.1:6379> decrby k1 2
(integer) 1

<getrange/setrange>示例:

127.0.0.1:6379> set k1 redis124
OK
127.0.0.1:6379> getrange k1 0 -1
"redis124"
127.0.0.1:6379> getrange k1 0 3
"redi"
127.0.0.1:6379> setrange k1 0 xxx
(integer) 8
127.0.0.1:6379> get k1
"xxxis124"

<setex/setnx>示例:

127.0.0.1:6379> setex k1 10 redis
OK
127.0.0.1:6379> get k1
"redis"
127.0.0.1:6379> get k1
(nil)
127.0.0.1:6379> setnx k2 redis
(integer) 1
127.0.0.1:6379> setnx k2 redis
(integer) 0

<mset/mget/msetnx>示例:

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> mset k1 v1 k4 v4
OK
127.0.0.1:6379> keys *
1) "k4"
2) "k2"
3) "k1"
4) "k3"
127.0.0.1:6379> msetnx k1 v1 k5 v5
(integer) 0
127.0.0.1:6379> getset k1 v
"v1"
127.0.0.1:6379> get k1
"v"

④Redis_List(单值多value)

      lpush/rpush/lrange                                 --新增,后进先出

      lpop/rpop                                                 --出栈

      lindex/llen                                                --按照索引下标获得元素(从上到下)/list长度

      lrem key                                                   --删N个value

      ltrim key                                                  --开始index 结束index,截取指定范围的值后再赋值给key

      rpoplpush                                               --源列表的值到目标列表

      lset key index value                               --指定下标覆盖值

      linsert key before/after 值1 值2            - -插入

<lpush/rpush/lrange>示例:

127.0.0.1:6379> lpush list1 1 2 3 4 5 
(integer) 5
127.0.0.1:6379> lrange list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpush list2 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange list2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

<lpop/rpop>示例:

127.0.0.1:6379> lpop list1
"5"
127.0.0.1:6379> lpop list2
"1"
127.0.0.1:6379> rpop list1
"1"
127.0.0.1:6379> rpop list2
"5"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"

<lindex/llen>示例:

127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lrange list2 0 -1 
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> lindex list1 2
"2"
127.0.0.1:6379> llen list1
(integer) 3

<lrem>示例:

127.0.0.1:6379> lpush list3 1 1 2 2 3 3 3 4
(integer) 8
127.0.0.1:6379> lrange list3 0 -1
1) "4"
2) "3"
3) "3"
4) "3"
5) "2"
6) "2"
7) "1"
8) "1"
127.0.0.1:6379> lrem list3 2 3
(integer) 2
127.0.0.1:6379> lrange list3 0 -1
1) "4"
2) "3"
3) "2"
4) "2"
5) "1"
6) "1"

<ltrim>示例:

127.0.0.1:6379> rpush list1 1 2 3 4 5 6 7 8 9
(integer) 9
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> ltrim list1 0 3
OK
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "2"
3) "3"
4) "4"

<rpoplpush>示例:

127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> lrange list2 0 -1
1) "2"
2) "1"
127.0.0.1:6379> rpoplpush list1 list2
"1"
127.0.0.1:6379> lrange list2 0 -1
1) "1"
2) "2"
3) "1"

<lset>示例:

127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lset list1 0 x
OK
127.0.0.1:6379> lrange list1 0 -1
1) "x"
2) "3"
3) "2"

<linsert>示例:

127.0.0.1:6379> rpush list1 0 1 2 3 4 
(integer) 5
127.0.0.1:6379> linsert list1 before 2 java
(integer) 6
127.0.0.1:6379> lrange list1 0 -1
1) "0"
2) "1"
3) "java"
4) "2"
5) "3"
6) "4"
127.0.0.1:6379> linsert list1 after 2 oracle
(integer) 7
127.0.0.1:6379> lrange list1 0 -1
1) "0"
2) "1"
3) "java"
4) "2"
5) "oracle"
6) "3"
7) "4"

⑤Redis_Set

     sadd/smembers/sismember                               --新增/显示/是否存在                 

     scard                                                                     --获取集合中有多少个元素

     srem key value                                                     --删除集合中指定元素

     srandmember key                                                --随机出几个数(原来集合中的值还在)

     spop key                                                               --随机出栈(原来集合中的值不存在)

     smove key1  key2                                                --移动值

     数学集合类:差集:sdiff  交集:sinter  并集:sunion

<sadd/smembers/sismember>示例:

127.0.0.1:6379> sadd set1 1 1 2 2 3 3
(integer) 3
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sismember set1 1
(integer) 1

<scard/srem>示例:

127.0.0.1:6379> scard set1
(integer) 3
127.0.0.1:6379> srem set1 1
(integer) 1
127.0.0.1:6379> smembers set1 
1) "2"
2) "3"

<srandmember/spop>示例:

127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379> srandmember set1 4
1) "2"
2) "1"
3) "4"
4) "6"
127.0.0.1:6379> srandmember set1 4
1) "1"
2) "4"
3) "6"
4) "5"
127.0.0.1:6379> spop set1 2
1) "5"
2) "6"
127.0.0.1:6379> smembers set1 
1) "1"
2) "3"
3) "4"
<smove>示例:
127.0.0.1:6379> sadd set2 x y z 
(integer) 3
127.0.0.1:6379> smembers set2
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> smembers set1
1) "1"
2) "3"
3) "4"
127.0.0.1:6379> smove set1 set2 1 
(integer) 1
127.0.0.1:6379> smembers set1
1) "3"
2) "4"
127.0.0.1:6379> smembers set2
1) "x"
2) "1"
3) "z"
4) "y"

<sdiff/sinter/sunion>示例:

127.0.0.1:6379> sadd set1 1 2 3
(integer) 3
127.0.0.1:6379> sadd set2 1 2 a
(integer) 3
127.0.0.1:6379> sdiff set1 set2
1) "3"
127.0.0.1:6379> sinter set1 set2
1) "1"
2) "2"
127.0.0.1:6379> sunion set1 set2
1) "2"
2) "a"
3) "1"
4) "3"

⑥Redis_Hash

       hset/hget/hmset/hmget/hgetall/hdel                    --设单值/取单值/设多值/取多值/取全部值/删除

       hlen                                                                            --长度

       hexists key                                                                --是否存在key

       hkeys/hvals                                                               --显示所有key/显示所有value

       hincrby/hincrbyfloat                                                --相加

       hsetnx                                                                       --不存在设值

<hset/hget/hmset/hmget/hgetall/hdel >示例:

127.0.0.1:6379> hset user name ryan
(integer) 1
127.0.0.1:6379> hset user age 21
(integer) 1
127.0.0.1:6379> hget user name
"ryan"
127.0.0.1:6379> hget user age
"21"
127.0.0.1:6379> hmset customer name kiven age 22 id 11
OK
127.0.0.1:6379> hmget customer name age id
1) "kiven"
2) "22"
3) "11"
127.0.0.1:6379> hgetall customer
1) "name"
2) "kiven"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hdel user age
(integer) 1
127.0.0.1:6379> hgetall user
1) "name"
2) "ryan"

<hlen/hexists/hkeys/hvals/>示例:

127.0.0.1:6379> hmset user name ryan age 22 id 11
OK
127.0.0.1:6379> hkeys user
1) "name"
2) "age"
3) "id"
127.0.0.1:6379> hvals user
1) "ryan"
2) "22"
3) "11"
127.0.0.1:6379> hexists user name 
(integer) 1
127.0.0.1:6379> hlen user
(integer) 3

<hincrby/hincrbyfloat/hsetnx>示例:

127.0.0.1:6379> hgetall user
1) "name"
2) "ryan"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hincrby user age 3
(integer) 25
127.0.0.1:6379> hget user age
"25"
127.0.0.1:6379> hincrbyfloat user age 2.3
"27.3"
127.0.0.1:6379> hsetnx user age 3
(integer) 0
127.0.0.1:6379> hsetnx user email 123@ly.com
(integer) 1

⑦Redis_ZSet(在set基础上价格上score值)

      zadd/zrange(withscores)                                                    -

     zrangebyscore  key 开始score结束score                                

     zrem key  某score下对应的value值,作用是删除元素

     zcard/zcount key score 区间/zrank key values值,作用是获得下标值 /zscore key 对应值,获得分

     zrevrank key values 值    --逆序获取下标

     zrevrange

     zrevrangebysocre key 结束score开始score

<zadd/zrange(withscores)>示例:

127.0.0.1:6379> zadd zset1 60 v1 70 v2 80 v3 90 v4 100 v5
(integer) 5
127.0.0.1:6379> zrange zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> zrange zset1 0 -1 withscores
 1) "v1"
 2) "60"
 3) "v2"
 4) "70"
 5) "v3"
 6) "80"
 7) "v4"
 8) "90"
 9) "v5"
10) "100"

<zrangebyscore/limit/withscores>示例:

127.0.0.1:6379> zrangebyscore zset1 60 90
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> zrangebyscore zset1 60 (90   //[60,90)
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> zrangebyscore zset1 (60 (90   //(60,90)
1) "v2"
2) "v3"
127.0.0.1:6379> zrangebyscore zset1 (60 (90 withscores
1) "v2"
2) "70"
3) "v3"
4) "80"
127.0.0.1:6379> zrangebyscore zset1 (60 (90 limit 2 2
(empty list or set)
127.0.0.1:6379> zrangebyscore zset1 60 90 limit 2 2
1) "v3"
2) "v4"

<zrem/zcard/zcount/zrank/zscore>示例:

127.0.0.1:6379> zrange zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> zrem zset1 v5
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> zcard zset1
(integer) 4
127.0.0.1:6379> zcount zset1 60 90
(integer) 4
127.0.0.1:6379> zrank zset v4
(nil)
127.0.0.1:6379> zrank zset1 v4
(integer) 3
127.0.0.1:6379> zscore zset1 v4
"90""

<zrevrank/zrevrange/zrevrangebyscore>示例:

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> zrank zset1 v4
(integer) 3
127.0.0.1:6379> zrevrange zset1 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> zrevrangebyscore zset1 90 60 
1) "v4"
2) "v3"
3) "v2"
4) "v1"


     

      






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值