Redis常用命令

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

上篇文章主要介绍了redis安装配置:http://msiyuetian.blog.51cto.com/8637744/1717983

下面这篇文章主要介绍redis常用命令


一、Redis数值常用命令操作


1、String类型常用操作

[root@master ~]# redis-cli -a 123456

127.0.0.1:6379> set key1 123

OK

127.0.0.1:6379> get key1

"123"

127.0.0.1:6379> set key1 456         //一个key对应一个value,多次赋值,会覆盖前面的value

OK

127.0.0.1:6379> get key1

"456"

127.0.0.1:6379>

127.0.0.1:6379> setnx key1 aaa

(integer) 0

127.0.0.1:6379> get key1

"456"

127.0.0.1:6379> setnx key2 aaa

(integer) 1

127.0.0.1:6379> get key2

"aaa"

说明:setnx如果key存在,则返回0,不存在会直接创建这个key。

127.0.0.1:6379> setex key3 100 bbb          //给key设置过期时间100秒

OK

127.0.0.1:6379> get key3

"bbb"

127.0.0.1:6379> ttl key3                           //查看剩余生存时间

(integer) 89

127.0.0.1:6379> ttl key3

(integer) 84

127.0.0.1:6379> ttl key3

(integer) 70

127.0.0.1:6379> mset key1 a key2 b key3 c      //批量创建

OK

127.0.0.1:6379> mget key1 key2 key3

1) "a"

2) "b"

3) "c"


2、Hash类型常用操作

127.0.0.1:6379> hset hash1 name tpp            //建立hash

(integer) 1

127.0.0.1:6379> hset hash1 age 25

(integer) 1

127.0.0.1:6379> hset hash1 job it

(integer) 1

127.0.0.1:6379> hgetall hash1

1) "name"

2) "tpp"

3) "age"

4) "25"

5) "job"

6) "it"

127.0.0.1:6379> hget hash1 name

"tpp"

127.0.0.1:6379> hmset hash2 name xiaoming age 10 job student     //批量建立键值对

OK

127.0.0.1:6379> hgetall hash2

1) "name"

2) "xiaoming"

3) "age"

4) "10"

5) "job"

6) "student"

127.0.0.1:6379> hmget hash2 name age job

1) "xiaoming"

2) "10"

3) "student"

127.0.0.1:6379> hdel hash2 job           //删除指定的filed

(integer) 1

127.0.0.1:6379> hgetall hash2

1) "name"

2) "xiaoming"

3) "age"

4) "10"

127.0.0.1:6379> hkeys hash2               //打印所有的key

1) "name"

2) "age"

127.0.0.1:6379> hvals hash2                //打印所有的values

1) "xiaoming"

2) "10"

127.0.0.1:6379> hlen hash2                 //查看hash有几个filed

(integer) 2


3、List类型常用操作

127.0.0.1:6379> lpush list1 aaa            //从左侧压入一个元素

(integer) 1

127.0.0.1:6379> lpush list1 bbb

(integer) 2

127.0.0.1:6379> lpush list1 ccc

(integer) 3

127.0.0.1:6379> lrange list1 0 -1          //0为头,-1为尾

1) "ccc"

2) "bbb"

3) "aaa"

127.0.0.1:6379> lpop list1                    //从左侧取出

"ccc"

127.0.0.1:6379> lrange list1 0 -1

1) "bbb"

2) "aaa"

127.0.0.1:6379> rpush list1 1               //从右侧压入一个元素

(integer) 3

127.0.0.1:6379> rpush list1 2

(integer) 4

127.0.0.1:6379> rpush list1 3

(integer) 5

127.0.0.1:6379> lrange list1 0 -1

1) "bbb"

2) "aaa"

3) "1"

4) "2"

5) "3"

127.0.0.1:6379> rpop list1                     //从右侧取出

"3"

127.0.0.1:6379> lrange list1 0 -1

1) "bbb"

2) "aaa"

3) "1"

4) "2"

127.0.0.1:6379> linsert list1 before aaa ccc      //在元素aaa前面插入一个元素ccc

(integer) 5

127.0.0.1:6379> lrange list1 0 -1

1) "bbb"

2) "ccc"

3) "aaa"

4) "1"

5) "2"

127.0.0.1:6379> lset list1 4 ddd                       //把第五个元素修改为ddd

OK

127.0.0.1:6379> lrange list1 0 -1

1) "bbb"

2) "ccc"

3) "aaa"

4) "1"

5) "ddd"

127.0.0.1:6379> lindex list1 2                          //查看第3个元素

"aaa"

127.0.0.1:6379> llen list1                                //查看链表中有几个元素

(integer) 5


4、Set类型常用操作

127.0.0.1:6379> sadd set1 a                           //向集合set1中放入元素

(integer) 1

127.0.0.1:6379> sadd set1 b

(integer) 1

127.0.0.1:6379> sadd set1 c

(integer) 1

127.0.0.1:6379> sadd set1 1

(integer) 1

127.0.0.1:6379> sadd set1 2

(integer) 1

127.0.0.1:6379> sadd set1 3

(integer) 1

127.0.0.1:6379> smembers set1                       //查看集合中的所有元素

1) "1"

2) "c"

3) "a"

4) "2"

5) "3"

6) "b"

127.0.0.1:6379> srem set1 c                            //删除元素c

(integer) 1

127.0.0.1:6379> smembers set1

1) "a"

2) "2"

3) "3"

4) "1"

5) "b"

127.0.0.1:6379> spop set1                              //随机取出一个元素,删除

"a"

127.0.0.1:6379> spop set1

"1"

127.0.0.1:6379> smembers set1

1) "2"

2) "3"

3) "b"

127.0.0.1:6379> sadd set2 2

(integer) 1

127.0.0.1:6379> sadd set2 a

(integer) 1

127.0.0.1:6379> sadd set2 b

(integer) 1

127.0.0.1:6379> smembers set2

1) "2"

2) "b"

3) "a"

127.0.0.1:6379> sdiff set1 set2                           //求差集,以set1为标准

1) "3"

127.0.0.1:6379> sdiff set2 set1                           //求差集,以set2为标准

1) "a"

127.0.0.1:6379> sdiffstore set3 set1 set2            //求差集并存储到 set3

(integer) 1

127.0.0.1:6379> smembers set3

1) "3"

127.0.0.1:6379> sinter set1 set2                         //求交集

1) "2"

2) "b"

127.0.0.1:6379> sinterstore set4 set1 set2          //求交集并存储到 set4

(integer) 2

127.0.0.1:6379> smembers set4

1) "2"

2) "b"

127.0.0.1:6379> sunion set1 set2                       //求并集

1) "2"

2) "b"

3) "3"

4) "a"

127.0.0.1:6379> sunionstore set5 set1 set2       //求并集并存储到 set5

(integer) 4

127.0.0.1:6379> smembers set5

1) "2"

2) "b"

3) "3"

4) "a"

127.0.0.1:6379> sismember set5 2                     //判断一个元素是否属于一个集合,属于返回1

(integer) 1

127.0.0.1:6379> sismember set5 c                     //不属于返回0

(integer) 0

127.0.0.1:6379> srandmember set2                  //随机取出一个元素,但不删除

"a"

127.0.0.1:6379> srandmember set2

"2"

127.0.0.1:6379> srandmember set2

"b"


5、Zset类型常用操作

127.0.0.1:6379> zadd zset1 1 aaa                           //创建有序集合

(integer) 1

127.0.0.1:6379> zadd zset1 10 bbb

(integer) 1

127.0.0.1:6379> zadd zset1 5 ccc

(integer) 1

127.0.0.1:6379> zadd zset1 20 ddd

(integer) 1

127.0.0.1:6379> zadd zset1 100 eee

(integer) 1

127.0.0.1:6379> zrange zset1 0 -1                           //顺序显示所有元素

1) "aaa"

2) "ccc"

3) "bbb"

4) "ddd"

5) "eee"

127.0.0.1:6379> zrange zset1 0 -1 withscores        //顺序显示所有元素和分值

1) "aaa"

2) "1"

3) "ccc"

4) "5"

5) "bbb"

6) "10"

7) "ddd"

8) "20"

9) "eee"

10) "100"

127.0.0.1:6379> zrevrange zset1 0 -1                     //反序显示所有元素

1) "eee"

2) "ddd"

3) "bbb"

4) "ccc"

127.0.0.1:6379> zrem zset1 aaa                              //删除指定元素

(integer) 1

127.0.0.1:6379> zrange zset1 0 -1

1) "ccc"

2) "bbb"

3) "ddd"

4) "eee"

127.0.0.1:6379> zrank zset1 ccc                            //按scores正向返回元素索引值,从0开始

(integer) 0

127.0.0.1:6379> zrevrank zset1 ccc                       //按scores反向返回元素索引值

(integer) 3

127.0.0.1:6379> zcard zset1                                  //返回集合中所有元素的个数

(integer) 4

127.0.0.1:6379> zcount zset1 1 10                       //返回分值范围1-10的元素个数

(integer) 2

127.0.0.1:6379> zrangebyscore zset1 1 10           //返回分值范围1-10的元素

1) "ccc"

2) "bbb"

127.0.0.1:6379> zrangebyscore zset1 1 10 withscores      //同上,并显示score值

1) "ccc"

2) "5"

3) "bbb"

4) "10"

127.0.0.1:6379> zremrangebyrank zset1 0 2                 //删除索引范围0-2的元素,按score正向

(integer) 3

127.0.0.1:6379> zrange zset1 0 -1

1) "eee"

127.0.0.1:6379> zremrangebyscore zset1 10 100        //删除分值范围10-100的元素

(integer) 1

127.0.0.1:6379> zrange zset1 0 -1

(empty list or set)



二、Redis键值相关操作


127.0.0.1:6379> keys *                       //取出所有key

1) "hash1"

2) "key2"

3) "set1"

4) "key4"

5) "key1"

6) "key3"

7) "zset1"

8) "list1"

127.0.0.1:6379> keys key*                  //模糊匹配

1) "key2" 

2) "key4"

3) "key1"

4) "key3"

127.0.0.1:6379> exists set1                //键存在,返回1

(integer) 1

127.0.0.1:6379> exists set2                //键不存在,返回0

(integer) 0

127.0.0.1:6379> del key1                   //删除一个key,成功返回1,否则返回0

(integer) 1

127.0.0.1:6379> expire key2 20         //设置key2的剩余过期时间为20s

(integer) 1

127.0.0.1:6379> get key2                

"abcd"

127.0.0.1:6379> ttl key2                    //查看过期时间,单位为s ,正数为过期时间              

(integer) 8

127.0.0.1:6379> ttl key2                    //返回-2,表示该键不存在

(integer) -2

127.0.0.1:6379> ttl key3                    //返回-1,表示该键没有设置剩余过期时间

(integer) -1


127.0.0.1:6379> expire key3 20

(integer) 1

127.0.0.1:6379> persist key3             //取消过期时间

(integer) 1

127.0.0.1:6379> ttl key3

(integer) -1

127.0.0.1:6379> select 2                    //切换到库2,默认进入0库,系统总共16个库

OK

127.0.0.1:6379[2]> set key5 123

OK

127.0.0.1:6379> move set1 2            //把set1移到库2中

(integer) 1

127.0.0.1:6379> select 2

OK

127.0.0.1:6379[2]> keys *

1) "key5"

2) "set1"

127.0.0.1:6379> keys *

1) "hash1"

2) "key4"

3) "key3"

4) "zset1"

5) "list1"

127.0.0.1:6379> randomkey               //随机返回一个key

"key4"

127.0.0.1:6379> randomkey

"hash1"

127.0.0.1:6379> randomkey

"zset1"

127.0.0.1:6379> rename list1 list2       //把list1重命名为list2

OK

127.0.0.1:6379> keys *

1) "hash1"

2) "list2"

3) "key4"

4) "key3"

5) "zset1"

127.0.0.1:6379> type zset1                  //返回键的类型

zset

127.0.0.1:6379> type hash1

hash


三、Redis服务相关操作


127.0.0.1:6379> keys *

1) "hash1"

2) "list2"

3) "key4"

4) "key3"

5) "zset1"

127.0.0.1:6379> dbsize                        //返回当前数据库中key的数目

(integer) 5

127.0.0.1:6379> info                             //返回redis数据库状态信息

127.0.0.1:6379> flushdb                       //清空当前数据库中所有的键

OK

127.0.0.1:6379> flushall                        //清空所有数据库中的所有的键

OK





      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1719979,如需转载请自行联系原作者




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
NoSQL Redis 数据库
Redis的全局命令及相关误区
Redis的全局命令及相关误区
22 0
|
24天前
|
NoSQL Redis 数据库
Redis中的常用命令有哪些?
Redis常用命令包括:PING测试连接,ECHO回显,SELECT切换数据库,QUIT关闭连接;KEYS查找key,EXISTS检查存在,DEL删除key,EXPIRE设置过期时间,TTL查看剩余生存时间,TYPE检测数据类型;STRING操作如SET/GET/MSET/MGET,INCR/DECR增减计数;HASH命令如HSET/HGET/HMSET/HMGET/HGETALL管理字段;LIST操作如LPUSH/RPUSH/LPOP/RPOP/LRANGE;
10 0
|
30天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
187 0
|
2月前
|
缓存 NoSQL 数据处理
Redis事务悄然而至:命令的背后故事
Redis事务悄然而至:命令的背后故事
27 0
|
3月前
|
存储 NoSQL Redis
redis中Hash命令的基础操作
redis中Hash命令的基础操作
40 1
|
3月前
|
存储 NoSQL 安全
Redis相关命令详解及其原理:Redis基本操作、数据结构以及应用
Redis相关命令详解及其原理:Redis基本操作、数据结构以及应用
96 0
|
1月前
|
缓存 NoSQL Java
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
62 0
|
1天前
|
存储 缓存 NoSQL
Redis入门到通关之Hash命令
Redis入门到通关之Hash命令
|
1天前
|
存储 缓存 NoSQL
Redis入门到通关之String命令
Redis入门到通关之String命令
|
7天前
|
存储 NoSQL Java
Redis 命令
Redis 命令
143 0

热门文章

最新文章