Redis常用命令

Redis

一、数据结构

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

1、操作String(字符串)数据常用命令

set username john  //设置username的值为john
get username       //获取username的值,返回值为john

自增操作
set age 18
incr age           //对age进行加1操作
incrby age 5       //对age进行加5操作


自减操作
decr age           //对age进行减1操作
decrby age 3       //对age进行减3操作

2、hash(哈希)数据常用命令

hash数据结构是String类型的key--value的键值的map

设置一个值
hset myhash username lili  //在myhash中存入username的值为lili

设置多个值
hmset myhash age 20 sex man //在myhash中存入多个值,设置age为20,设置sex为man

获取一个值
hget myhash username       //从myhash中获取username的值,返回值为lili

获取多个值
hmget myhash username age  //从myhash中获取username以及age的值,返回值为lili和20

获取所有的key和value
hgetall myhash             //依次返回key和value

获取所有的key
hkeys myhash               //返回所有的key

获取所有的key对应的value
hvals myhash               //返回当前myhash中所有key对应的value值列表

获取myhash的长度
hlen myhash                //返回myhash的长度,这里存了三个key和value键值对,返回值为3

删除key的value
hdel myhash username       //删除myhash中key为username的value,返回值为1

删除多个key和value
hdel myhash age sex        //删除myhash的age和sex的value,返回值为2,表示两个操作成功

删除hash
del myhash                 //返回值为1表示删除myhash成功,返回值为0表示没有当前hash数据

假如这里还没有删除age的值,这里对age进行自增操作
hincr myhash age           //对age的值进行加1操作
hincrby myhash age 5       //对age的值加5操作

判断key和value是否存在
hexists myhash age         //返回值为1,表示存在
hexists myhash password    //返回值为0,表示不存在这样的key,因为本身就没设置password

 3、list数据结构

//添加数据到list数据结构中
lpush mylist 1 2 3                     //添加1  2   3到mylist中

rpush mylist a b c                     //添加a  b   c到mylist中

两者区别:lpush是向最前面添加,rpush向最后面添加,因此,mylist的数据最后结果是3 2 1 a b c 



注意:假设一下操作没有改变原有mylist数据结构,既每一个操作之后,mylist数据恢复原样3 2 1 a b c



//从list中弹出数据
lpop mylist                            //从mylist中弹出一个数据

rpop mylist                            //从mylist中弹出一个数据

两者区别:lpop从mylist最前面弹出,既索引为0的元素,rpop从mylist中最末尾弹出一个数据,既索引为5

修改指定索引位置的元素的值
lset mylist 2 hello                    //修改索引为2的元素的值为hello

从一个list中弹出一个数据加入到另一个list中的操作
lpush mylist1 5 6 7

lpoprpush mylist mylist1               //从mylist中弹出索引为0的元素加入到mylist1的末尾位置,操作完成后mylist结果为2 1 1 b c ,mylist1的结果为7 6 5 3

返回制定区间元素
lrange mylist1 0 -1                   //返回的是mylist1中所有的元素

lrange mylist1 1 2                    //返回的是索引从1到2的区间所有元素

根据参数 count 的值,移除列表中与参数 value 相等的元素。
语句为:lrem list count value

count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
count = 0 : 移除表中所有与 value 相等的值。

lrem mylist 1(count) 3(value)     //移除列表中1个value值为3的,从表头开始搜索
lrem mylist -1 3                     //移除列表中1个value值为3的,从表末尾开始搜索
lrem mylist 0 3                      //移除列表中所有value值为3的元素

向列表中某一个元素前或者后插入一个新元素
linsert mylist before 3 8            //在列表中第一个3前面插入一个8
linsert mylist after 3 8             //在列表中第一个3后面插入一个8
注意:linsert命令只会在列表的第一个指定元素前后者后插入新元素,如果有重复元素,后面的元素前或者后不会插入指定元素,只对第一个指定元素有效          

4、set数据结构

set数据结构和list不同,不能存入重复元素,既元素不重复

添加元素
sadd myset 1 2 3 a b c                  //向myset中存入1 2 3 a b c 六个元素

查看集合中所有元素值
smembers myset                          //返回所有值的列表,分别是1 2 3 a b c

删除集合中指定的一个或多个元素
删除一个元素
srem myset 2                            //删除集合中的2
srem myset a b                          //删除集合中的a和b两个元素

判断元素是不是集合中的元素
sismember myset 1                       //判断成员1是不是myset中的元素,如果是返回1,如果不是返回0

以下对两个集合进行操作
sadd mya1 a b c d 1 2 3
sadd mya2 b 2
sadd mya3 a 1 2

1)两个集合的差集
sdiff mya1 mya2               //mya1和mya2的差集,以前面一个集合为准,返回的结果为a c d 1 3
sdiff mya1 mya3               //mya1和mya3的差集,返回的结果为b c d 3

2)两个集合的交集
sinter mya1 mya2              //mya1和mya2的交集,返回的结果是b 2
sinter mya2 mya3              //mya2和mya3的交集,返回的结果是2

3)两个集合的并集
sunion mya2 mya3              //mya2和mya3的并集,返回结果是a b 1 2

返回集合中元素的基数(元素数量)
scard mya1                    //返回的是6,表示集合mya1的元素数量是6个

随机返回集合的一个元素
srandmember mya1             //随机返回mya1中的一个元素,对集合mya1不做任何改动

随机返回多个元素
srandmember mya1 count
这里
1)如果count大于0且count小于集合的基数,则随机返回count个不重复的元素
2)如果count大于等于集合基数,则返回整个集合
3)如果count为负数,则随机返回count绝对值个元素,且元素可重复

srandmember mya1 3           //随机返回三个不重复的元素
srandmember mya1 8           //count的值大于等于集合基数,直接返回整个集合mya1
srandmember mya1 -4          //返回四个元素,这四个元素中的元素可重复
srandmember mya1 -10         //随机返回10个元素,元素可以重复

将连个集合的差集保存在指定集合里,如果指定集合中存在key,则覆盖
sdiffstore mysets mya1 mya2     //将mya1和mya2的差集保存在mysets中,mysets的结果为a c d 1 3

将两个集合的交集保存在指定集合中如果指定集合中存在key,则覆盖
sinterstore mysets2 mya1 mya2   //将mya1和mya2的交集保存在mysets2中,mysest2的结果为b 2

连个集合的并集保存字指定集合中,如果指定集合中存在key则覆盖
sunionstore mysets3 mya2 mya3   //将mya2和mya3的并集保存在mysets3中,mysets3的结果为a b 1 2

5、Sorted-set数据结构

Sorted-set和set的区别是,set无序的,不重复的,Sorted-set是有序的,不重复的

添加一个元素
语法:zadd key score member
zadd mysort 100 zs

添加多个元素
zadd mysort 90 ls 95 ww

返回score和member列表,分数由低到高
zrange myscore 0 -1 withscores             //返回的是分数从低到高的member和score列表

返回score和member列表,分数由高到低
zrevrange myscore 0 -1 withscores          //返回的是分数从高到低的member和score列表

范围查询member
zrange myscore 0 -1                   //查询所有成员member,由分数从低到高排序

返回当前成员个数
zcard myscore                         //这里有三个成员,返回值为3

删除3个成员,从分数最低的开始
zremrangebyrank myscore 0 3

删除分数在90到95之间的成员,包括90和95分的
zremrangebyscore myscore 90 95

返回分数在0-100之间的所有成员,包括0和100,按分数由低到高排序
zrangebyscore myscore 0 100

返回分数在0-100之间的所有成员和分数,包括0和100,按分数和成员由低到高排序
zrangebyscore myscore 0 100 wirhscores

返回分数在0-100之间的所有成员和分数,从分数最低的开始,取两个,分数包括0和100,按分数和成员由低到高排序,
zrangebyscore myscore 0 100 wirhscores limit 0 2          //limit相当远mysql中的limit,前面一个数字代表偏移量,从第几个开始,0表示从分数最低的开始取,后面一个表示区间,表示取两个

给定成员加指定分数
zincrby myscore 10 ls                 //给ls分数加10

获取指定成员分数
zscore myscore ls                     //查询ls的分数

指定分数区间成员数量
zcount myscore 80 100                 //80-100分之间的成员数量

二、Keys通用操作

匹配数据库中所有的key
keys *

删除key
del key1 key2 keye key...                     //删除多个指定key,返回值为成功删除key的个数

重命名
rename key newname                            //将key进行重命名操作,如果newname存在,则将其值覆盖
renamenx key newname                          //如果newname不存在返回1,如果存在返回0,

获得以my开头的key
keys my*                  //通配多个任意字符
keys my?                  //通配单个任意字符

通配括号内的某一个字符
keys pas[adfsopq]word     //比如password,pasaword,pasfword

返回随机key
randomkey

判断key是否存在
exists key                //存在返回1,不存在返回0

查询key的类型
type key                  //返回值有string,hash,set,list

设置key的生命周期
pexpire key times              //单位是毫秒值
expire key times               //单位是秒

查看key的生命周期
ttl key                        //返回的是秒值
pttl key                       //返回声明周期,单位是毫秒

设置key永久有效
persist key                    //设置成功返回1

选择第n个数据库
select n                       //选择第n个数据库,redis默认打开16个数据库,编号从0-15,可在配置文件里修改,默认使用的是0号数据库

移动key到指定数据库
move key n                     //将key移动到第n个数据库

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值