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