redis的五大数据类型和三种特殊数据类型,以及五大类型的一些基本命令

keys * 查看所有key

flushdb 清空当前库

EXISTS (key) 判断是否有这个key

move (key) 1 移除库1中的key

type name 查看name的数据类型

EXPIRE name 10 设置name10s后过期

ttl name 查看剩余时间

五大数据类型 Redis-Key

String

 追加字符串  append

获取长度 append

自增和自减

 字符串范围 getrange

a:1>getrange name 0 -1   //可以用作 获取全部长度

"v1hello,nihao"
下面是获取指定长度

 替换某个字符 setrange

a:1>set key1 abcdefg

"OK"
a:1>get key1

"abcdefg"
a:1>setrange key1 1 xx

"7"
a:1>get key1

"axxdefg"

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

setex ( set with expire )  #设置过期时间

setnx ( set if not exist ) # 不存在在设置(在分布式锁中回常用)

a:1>setex key2 30 "hello"  //设置key2的值为 hello,30s过期

"OK"
a:1>ttl key2              //查看剩余时间

"22"
a:1>get key2

"hello"


a:1>setnx mykey "redis"   //如果mykey 不存在,创建mykey

"1"


a:1> keys *

1) "name"

2) "mykey"

3) "views"

4) "key1"

a:1>ttl key2
"-2"

a:1>setnx mykey "MongoDb"   //如果mykey存在则创建失败
"0"

a:1>get mykey
"redis"

################################

同时设置多个值,和同时查多个值

mset,mget

a:0>mset k1 v1 k2 v2

"OK"
a:0>get k1

"v1"
a:0>get k2

"v2"
a:0>mget k1 k2

1) "v1"

 2)  "v2"
a:0>

msetnx  // 同时设置多个值,和同时查多个值,原子性,要么一起成功,要么一起失败

a:0>msetnx k1 v1 k3 v3

"0"

a:0>mset k1 v1 k3 v3
"OK"

################################

getset

组合用法

user:1 可以看成用户id为1,name为zhangsan,并在给其附加属性age为2

##########################

String一些使用场景

List(列表)

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

先创建list并插入数据到list

插入

Lpush  list   (存入的数据)    // 将一个值或者多个值插入到表头部 (左)

Rpush list   (存入的数据)     //将一个值或者多个值插入到表尾部

获取指定范围值

Lrange list 0 1           //查看下标0到下标1的值

移除

Lpop list          //移除第一个list的值

Rpop list         //移除最后一个list的值

获取list的指定值

lindex list (序列号)          //获取写定序列号下标中的值

获取列表长度

Llen list         //返回list的长度 "8"

删除指定值

lrem list 2 one1          //删除list中的两个one1

保留列表内指定区间的元素,不在区间全部删除

Ltrim list 1 2        //下标区间1-2的元素保留,其他全部删除

组合用法 rpoplpush

 lset  指定更新操作

 linsert 将某个具体的value插入到列表中某个元素的前面或者后面

 

Set(集合)  set中的值是   无序不重复的

set集合中添加值         Sadd

sadd myset "hello"

查看指定set的所有值        Smembers

smembers myset

判断谋一个值是否存在         Sismember

sismember myset hello

获取set集合中的元素个数  Scard

scard myset

移除set集合中的指定值        Srem

srem myset hello

随机抽出指定个数的元素 Srandmember

Srandmember myset          随机抽一个

Srandmember myset  2        随机抽两个,个数可定义

随机删除一些set中的元素  spop

spop myset

将一个集合中指定的值移动到另一个set集合中

smove myset myset2 "kuangshen"

 差集,交集和并集 Sdiff   ,    Sinter   Sunion

 使用set的一些场景

Hash(哈希)

key-map 本质上和key-valve没有太大区别可以看成是key-<key-value>

Hset,        Hmset,        Hget,        Hmget

 删除hash指定的key,那其中对应的值也就一并删除了  Hdel

 获取hash表的字段数量  Hlen

 判断字段是否存在 Hexists

 只获得所有field  Hkeys

只获得所有value  Hvals

 Hincrby   myhash field3 5         指定增量

Hdecrby myhash field3 1                指定减

Hsetnx myhash field hello  第一没有值则可以创建设置,第二次Hsetnx myhash field woreld重新设置新的值,因为他已经有 hello了所有设置失败

哈希的一些场景

Zset(有序集合)

添加Zset           Zadd

 排序  -inf  +inf  对应的是负无穷和正无穷

Zrangenbyscore  salary -inf  +inf  withscore  显示所有用户,数值从小到大,并附带成绩

 移除元素  zrem

 获取指定区间元素

 小结

三种特殊数据类型

Geospatial

Hyperloglog

Bitmap

猜你喜欢

转载自blog.csdn.net/weixin_53810346/article/details/123991490