1.定义
(1)Redis 是一个高性能的key-value数据库,key是字符串类型。
2.特点
(1)单进程:Redis的服务器程序采用的是单进程模型来处理客户端的请求。对读写时间的响 应是通过对epoll函数的包装来做到的。
3.数据类型
(1)键的类型是字符串
(2)值的类型分为五种: 字符串string,哈希hash,列表list,无序集合set;有序集合zset
重点:key只有一种是string类型,而value有5中类型:1string类型,2.list类型,3.set类型,4.hash类型5.zset类型
1.string类型
set 键值
//如果键不存在,就是添加
//如果键存在,就是修改
(1)设值取值
set name zs
set name lisi
(2)设置过期时间
setex name2 3 wangwu
- 设置多个键值对
mset key1 value1 key2 value2 key3 value3
- 追加值
append key value
2.get命令
1.获取单个值
get key1
2.获取多个值
mget key1 key2
3.del命令
1.删除某个键
del key1
2.删除多个键
del key1 key2
4.keys命令(查找键)
mset u1 aa u2 bb u3 cc
keys * 查询所有
5.exists命令(判断键是否存在)
如果存在返回1,不存在返回0
exists key
6.type命令(查看键对应值的类型)
type key
7.expire命令(设置键过期时间)
expire key seconds
案例:
set name zz
expire name 5
get name------------>(等一会儿..)
get name
8.TTL 命令(查看键有效时间)
TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
返回值:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。
2.list类型
(1)简介
(1)列表中的值(value)类型为字符串;
(2)字符串List,底层实现上不是数组,而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别的;其弊端是:元素定位比数组慢
(2)添加
从左侧插入值:
lpush key value1 value2
从右侧插入值:
rpush key value1 value2
注意:从左插入的是意思是往后边顺序排列,反之亦然
(3)获取
返回列表里指定范围内的值
- 索引从左侧开始,第一个值的索引为0;
- 索引可以是负数,表示从尾部开始计数,如-1表示最后一个值;
- start,stop为要获取值的索引。
语法:lrange key start stop
例如:
(1)获取列表所有值
lrange key 0 -1
(2)从第三个元素开始获取到最后的值
lrange key 2 -1
实战:
lpush name 1 2 3
rpush name 4 5 6
lrange name 0 -1
(4)修改
设置指定索引位置的值
(1)索引从左侧开始,第一个值的索引为0;
(2)索引可以是负数,表示从尾部开始,-1代表最后一个值。
语法:lset key index value
实战:
lset name 1 aa
lrange name 0 -1
(5)删除
删除指定值
- 将列表中前count次出现的值移除
- count>0:从头往尾删除
- count<0:从尾往头删除
- count=0:删除所有值
语法:irem key count value
(1)实战:
rpush born2 0 1 2 3 4 5 0 1 2 1 0 1 0 2 3 4 1 0 1 1 2
(2)查询列表
lrange born2 0 -1
(3)案例2:从键列表右侧开始删除1个2
lrem born2 -1 2
(4)查询列表
lrange born2 0 -1
(5):从键列表左侧开始删除2个2
lrem born2 2 2
(6)查询列表
lrange born2 0 -1