Redis入门

1、定义

Redis 是一个高性能的key-value数据库,key是字符串类型。核心特点:Redis的服务器程序采用的是单进程模型来处理客户端的请求

(面试题1)关系型数据库和非关系型数据库区别?

关系型数据库:具有固定的表结构

非关系型数据库:不具有固定的表结构,一般只具有key-value键值对的存储结构

(面试题2)redis存储的数据类型有几种?

key只有一种string类型

value有5种类型:1.string类型 2.list类型 3.set类型 4.hash类型 5.zset类型

2、环境准备

Redis 下载路径:https://github.com/tporadowski/redis/releases

Redis Desktop Manager 下载路径:https://github.com/MicrosoftArchive/redis/releases

3、String 类型

3.1 简介

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

3.2命令

3.2.1 set命令

1、set键值

例:set name zs

如果键存在就修改,不存在就添加

2、setex 名字 时间(秒) 值

例:setex name 10 xx

3、设置多个键值对(多条set)

mset  name zs name2 lisi

4、追加值

append name zs
3.2.2 get命令

1、获取单个值

get name

2、获取多个值

mget name1 name2
3.2.3 del命令

1、删除单个值

del name

2、删除多个值

del name1 name2
3.2.4 key命令(查找键)
keys name

查找所有 keys *

3.2.5 exists命令(判断是否存在)
exists name
3.2.6 type命令(查看键对应值的类型)
type name
3.2.7 expire命令(设置键过期时间)
expire name 10
3.2.8 TTL 命令(查看键有效时间)

以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

ttl name

当 key 不存在时,返回 -2 。

当 key 存在但没有设置剩余生存时间时,返回 -1 。

否则,以秒为单位,返回 key 的剩余生存时间。

4、list 类型

4.1简介

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

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

4.2命令

4.2.1添加

从左侧插入值:

lpush name a b c

从右侧插入值:

rpush key value1 value2
4.2.2 获取

返回列表里指定范围内的值
(1) 索引从左侧开始,第一个值的索引为0;
(2) 索引可以是负数,表示从尾部开始计数,如-1表示最后一个值;
(3) start,stop为要获取值的索引。

lrange name 0 1 
lrange name 0 -1 
4.2.3 修改

设置指定索引位置的值

(1)索引从左侧开始,第一个值的索引为0;

(2)索引可以是负数,表示从尾部开始,-1代表最后一个值。

lset name 1 xxx

4.2.4 删除

删除指定值

(1) 将列表中前count次出现的值移除

(2) count>0:从头往尾删除

(3) count<0:从尾往头删除

(4) count=0:删除所有值

lrem name -1 1 含义 删除name中从 尾 开始删除 1个 值为 1 的值 

lrem name 2 2 含义 删除name中从 头 开始删除 2个 值为 2 的值 

5、set 类型

5.1简介

字符串Set,无序不可重复,是通过HashTable实现的。

5.2命令

5.2.1添加
sadd name v1

sadd name v1 #不能重复插入相同值

sadd name v1 v2 v3 #可以设置多个值
5.2.2 获取集合中的所有元素
smembers name
5.2.3 判断元素是否在集合中
sismember name v1
5.2.4 判断元素是否在集合中
srem name v1
5.2.5 scard 获取集合中元素个数
scard name
5.2.6 spop 随机弹出元素
spop name
5.2.7 smove 移动元素
smove name name2 v1

6、 Hash哈希类型

6.1简介

按Hash方式来存放字符串

6.2命令

6.2.1 hset设置值
hset user id 123
6.2.2 hmset设置多个值
hmset user id 123 name 456
6.2.3 hgetall获取key下所有的值
hgetall user
6.2.4 hget 获取单个key的值
hget user id
6.2.5 hmget同时获取多个值
hmget user id name
6.2.7 hdel删除某个项
hdel user id

7、zset类型(有序集合)

7.1简介

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

7.2命令

6.2.1 zadd设置值
zadd myzset 10 v1

10代表score v1代表value
6.2.2 zadd设置多个值
zadd myzset 10 v1 20 v2
6.2.3 zrange获取索引区间的元素
zrange myzset 0 -1

zrange myzset 0 -1 withscores 查询包括score的值
6.2.4 获取分数区间内的元素
zrangebyscore myzset 0 20 代表大于等于0,小于等于20

zrangebyscore myzset 0  (20  代表大于等于0,小于20

zrangebyscore myzset 0  (20 withscores 代表大于等于0,小于20,带分数

zrangebyscore myzset 20 +inf withscores  代表大于等于20,带分数

zrangebyscore myzset (20 +inf withscores  代表大于20,带分数

6.2.5 zrem删除元素

zrem myzset v1 v2 删除 v1 v2

zrangebyscore myzset 0 +inf withscores 获取所有的大于0的值和分数

6.2.6 zcard 获取集合中元素个数

zcard myzset
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值