Redis数据库

1.定义:

Redis数据库是一种非关系型数据库,高性能的缓存数据库,保存形式为key-value键值对

和关系型数据库的最大区别是:没有固定的表结构

2.特点:

单进程:

Redis的服务器程序采用的是单进程模型来处理客户端的请求。对读写时间的响应是通过对epoll函数的包装来做到的,同时拥有不错的性能

3.连接可视化:

这里选择的是Redis 5.0.14 (a7c01ef4/0) 64 bit版本的数据库,可视化工具选择的是

 安装好数据库后,双击文件redis-server.exe 

 出现如下页面即为正常连接

 安装好可视化软件后,双击启动:

 可以看到,默认redis自带16个库,默认端口号是6379

4.数据类型:

redis是key-value型键值对的数据结构,key只有一种类型,即为string类型

value一共有5种类型:string(最常用),list,set,hash,zset

4.1string类型

string是redis最基本的类型,可以储存string,Integer,Float型的数据,甚至是二进制数据,一个字符串的最大容量是512M

常用指令:

set添加值:

        set name dilireba

        //此时没有就设置name为dilireba

        set name yangmi

        //此时有name就覆盖为yangmi

setex设置时间:

        setex pwd 10 mima

        //此时设置pwd密码为mima,时间为10s,到期自动删除,key和value一同消失

mset多个添加:

        mset name liangliang pwd 123

append添加:

        append name wenwen

        //在name字段后面添加wenwen

get取值:

        get name

        //获取name的值

mget获取多个值:

        mget name age pwd

        //获取多个值

del删除:

        del name

        //删除name 返回1,不存在返回0

del删除多个:

        del name age

keys *:

        查看所有的键

exists 判断是否存在键:

        exists aaa

        //判断是否存在

type查看对应的值的类型:

        type name

expire修改键剩余时间:

        先设置好的键如name,此时再设置时间

        expire name 20

ttl 查看剩余时间:

        ttl name

        //返回值为-2为键不存在,-1是没有设置时间的,秒为单位

 4.2list类型

(1)列表中的值(value)类型为字符串;

(2)字符串List,底层实现上不是数组,而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别的;其弊端是:元素定位比数组慢

(3)有序的可以重复

常用指令:

插入push:lpush和rpush

        lpush name dilireba yangmi wuxuanyi

        rpush name dilireba yangmi wuxuanyi

        //最后顺序不同,一个是朝左插入,另一个是朝右

获取 lrange:

        lrange name 0 -1

        //从左到右,0到最后,-1是最后 lrange name 0 1 从左到右

修改lset:

        lset name 1 liqin

        //格式:lset key名字 下标 值,lset name1 0 yangchaoyue 将name1中的第1个,0下标的值改为yangchaoyue

删除:

        lrem key count value

        //将列表中的前count次出现的值删除

        count>0,从前往后删

        count<0,从后向前删

        count=0,删除所有

4.3set类型:

字符串set,无序不可重复

常用指令:

插入sadd:

        sadd name_set v1 v2 v3

        //设置值,不可以设置重复的,可以设置多个值

获取所有的值:

        smembers name_set

查询是否在集合中:

        sismember name_set v1

删除:

        srem name_set v1

        //格式:srem key名字 值

获取大小:

        scard name_set

        //获取name_set的元素个数

弹出spop:

        spop key名字

        //随机弹出

smove移动元素:

        smove name_set name_set1 v3

        //将name_set中的v3移动到别的名为name_set1的key的value中去,如果没有名为name_set1的key则创建一个

4.4hash类型

用hash的方式存放数据,key-value(key-value)

添加:

        hset user id 999

多个添加:

        hmset user id 888 name zs age 18

        重复会覆盖

查看所有的键值对:

        hgetall user

查看某个键中的键:

        hget key key hget user name

同时查看某个键中多个值:

        hmget key key key hmget user id name

删除某个键:

        hdel key key hdel user id

        可以删除多个

4.5zset类型

字符串Set,有序且不可重复,根据Score来排序。

添加元素:

        zadd key score value zadd myzset 20 z1

        添加后按照score排序,score整数,浮点数,+inf是正无穷

查找区间:

        zrange key start stop zrange myzset 0 -1

        zrange myzset 0 -1 withscores

        下面可以查出score value对

查找:

        zrangebyscore key start stop withscores

        zrangebyscore myzset 0 20 //大于等于0,小于等于20

        zrangebyscore myzset 0 (20 //大于等于0,小于20

删除:

        zrem key value value zrem myzset z1 z2

获取个数:

        zcard key

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值