30 03 2022

Redis的基本使用

        1、Redis基本介绍

            1.1、redis 基本介绍

            image.png

            1.2、redis安装和基本使用

            image.png

            1.3、redis的优势

            异常快速:Redis速度非常快,每秒能执行约11万集合,约81000条每秒。

            支持丰富的数据类型:Redis原生支持最大多数开发人员已经知道的,像列表,集合,分类,散列等数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些数据类型问题是可以通过它的处理得更好。

            操作原子性:所有Redis的操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。

            MultiUtility工具:Redis是一个多实用的工具,可以在一些像缓存,消息,队列用例中使用(Redis原生支持发布/订阅),在应用程序,如Web应用程序的会话,网络页面点击数短期数据等等。

            


            操作原理图:

            image.png

            链接redis:

            image.png

            

            1.3、redis操作指令一览

            网址:http://redisdoc.com/

        2、Redis基本使用

            2.1、redis的基本使用

            image.png

            2.3、Redis的CURD

            2.3.1、Redis的五大数据类型

            String(字符串)、Hash(哈希)、Lish(链表)、集合(Set)、有序集合(Zset)


            String基本介绍:

            a、String是redis最基本的类型,一个key对应一个value

            b、String类型是二进制安全的,除普通字符串外,也可以存放图片等数据;单个value最大值512M

            image.png

            c、set操作,set[如果key存在就相当于修改,如果不存在相当于添加];set key value;

            d、get操作,直接 get key键

            e、del操作,直接del key键

            image.png

            f、set设置过期时间, setex  key  过期时间 value

            image.png

            g、mset同时设置一个或多个 key-value对,如果给定的key已经存在,那么mset会用新值覆盖原来的旧值,格式:mset key1 value1 key2 value2,可以使用mget 获取全部值   也可以单独使用get 指定的键

            image.png


            Hash基本介绍(hash类似golang里面的map):

            a、Redis hash是一个键值对集合,每个hash可存储多达2的32次方-1个字段-值对(超过42亿)

            b、Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象

            c、设置指令格式: hset key field value    

            d、获取指令格式: hget key field 

            image.png

            e、获取所有: hgetall key

            image.png

            f、一次性设置所有:hmset key field value field value ...

            image.png

            g、一次性获取所有:hmget key field field ...

            image.png

            h、删除指定字段:hdel key field

            image.png

            i、hlen统计一个hash有几个元素

            image.png

            j、查看hash表key中,是否存在给定的field字段,指令格式:hexists key field

            image.png


            List(列表)基本介绍:

            列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

            List本质是个链表,List的元素是有序的,元素的值可以重复。

            List数据结构分析:

            image.png

            a、设置一个链表,从左边插入:lpush key value value value ...    依次放入aaa  bbb  ccc

            image.png

            b、获取链表内容,从左边“取出”(只是取出,链表中还存在这个数据):lrange key start stop ,这里的start代表开始,stop代表结束,当stop为-1的时候表示取到最后一个值,lrange key 0 -1,表示全部取出;依次取出 ccc  bbb  aaa  

            image.png

            image.png

            image.png

            c、设置一个链表,从右边插入:rpush key value value value ...    依次放入ddd  eee

            image.png

            此刻再从左边取出, 看看数据结构:

            image.png

            d、从链表左边“弹出”(从链表中弹出移走数据):lpop key

            image.png

            e、从链表右边“弹出”(从链表中弹出移走数据):rpop key

            image.png

            f、删除整个链表:del key

            image.png

            注意事项:

            a、lindex  :按照索引下标获得元素(从左到右,编号从0开始)

            b、LLEN key :返回列表key的长度,如果key不存在,则key被解释为一个空列表,返回0

            c、List数据,可以从左 或者从右插入添加

            d、如果值全移除,对应的键也就消失了


            Set(集合)基本介绍:

            Redis的Set是string类型的无序集合,底层是Hash Table数据结构,Set也是存放很多字符串元素,字符串元素是无序的,而且元素的值不能重复

            a、添加数据到集合中:sadd key member member member ...   (member:成员)

            image.png

            b、从集合中取出所有数据:smembers key

            image.png

            c、判断值是否是成员:sismember  key  member 

            image.png

            d、删除集合中指定的成员:srem key member

            image.png


            注意事项:

            a、元素的值不能重复

            image.png