Redis是一个开源(BSD许可)的,是单线程的,基于内存操作,Redis将所有的数据全部放到内存中,它可以用作数据库、缓存和消息中间件。cpu不是redis性能瓶颈,他的瓶颈是根据机器的内存和网络带宽。
一、Redis的启动和关闭
1、redis-server config/redis.conf 启动redis服务端
2、redis-cli -p 6379 启动redis客户端
3、 shutdown 关闭redis的服务
4、exit 退出redis服务
5、 ps -ef | grep redis 查看reids的进程
二、Redis常用的命令
1、set 在该数据库下设置值
2、get 在该数据库下获取值
3、keys 查看数据库所有的key
4、del 在该数据库下删除值
5、select 切换到1号数据库 redis默认由16个库(0~15号). 且默认使用的是0号库)
6、dbsize 查看当前数据库的存在的数据个数
7、flushall 清空全部数据库
8、flushdb 清空当前数据库
9、exists 判断当前key是否存在
10、 move 在本数据库中将key移除 1代表当前的数据库
11、move 在本数据库中将key移除到其他数据库 7代表将要移到的数据库
12、expire 设置当前key的过期时间 3代表3秒后过期,过期后再次查询就没有了
13、ttl (time to live) 查看key的剩余过期时间
14、type 查看当前key的类型
三、Redis常用的5大数据类型
1、String字符串
1)append name hello 将hello追加到key为name的value值上,并返回当前value值的长度
2)append sex 1 在追加value值的时候,如果当前key不存在的时候,自动创建key,并给value赋值
3)strlen name 获取当前key的字符串长度
4)incr key 当前key的值自增1
5)decr key 当前key的值自减1
6)incrby key 10 当前key的value值每次增加10,步长为10
7)decrby key 4 当前key的value值每次减少4,步长为4
8)getrange key 0 5 查找范围值,查找当前key的从0到5的value值
9)getrange key 0 -1 获取当前key的全部的字符串,和get一样
10)setrange key 1 w 将当前key的vaule值下标为1的值替换成w
11)setex(set with expire) key 30 hello 设置过期时间,设置key的值为hello,过期时间为30秒
12)setnx(set if not exist)key mmm 当前key不存在再设置,如果设置成功会返回1,如果不存在会返回0,value值不会改变。在分布式锁中会常常使用。是一个原子性的操作,要么一起成功,要么一起失败。
13)mset key1 value1 key2 value2 一次设置多个值
14)mget key1 key2 一次设置多个值
15)set user:1 {name:zhangsan,age:22} 设置对一个对象 key为user:1 ,value值为json字符来保存一个对象
16)mset user:2:name lisi user:2:age 23 设置对一个对象 key为对象的多个user:{id}:{filed}
17)getset db redis 先设置一个值然后在获取这个值 如果值不存在就返回nil,get时可以获取到刚刚set的value值
18)getset db mongodb 先设置一个值然后在获取这个值 如果值存在就返回之前的value值,get时可以获取到刚刚set的value值
使用场景:string中的value出来字符串还可以是数字,一般我们用来计数器、统计多单位的数量、粉丝数、对象缓冲存储。
2、List列表
1)lpush 将一个值或者多个值插入到表头部(左),并返回当前列表的长度
2)lrange 获取列表中的值,也可以获取区间内的具体值
3)rpush 将一个值或者多个值插入到表尾部(右),并返回当前列表的长度
4)lpop list 移除list从头部开始的第一个元素,返回移除的元素
5)rpop list 移除list从尾部开始的第一个元素,返回移除的元素
6)llen list 返回当前list的长度
7)lindex list 0 获取list中下标为0的值
l
8)lrem key count value 移除指定的值,也可以移除多个指定的值
9)ltrim key start stop 通过下标截取指定的长度,这个list已经被改变了,截断了只剩下的元素
10)rpoplpush list list1 移除列表的最后一个元素,将他移动到新的列表中
11) exists key 判断这个列表是否存在,存在返回1,不存在返回0
12)lset key index value 将列表中指定下标的值替换为另外一个值,更新操作
持续学习,持续更新,欢迎关注!