简介
Redis是由意大利人开发的一款内存高速缓存数据库,是一个高性能的键值对(key- value)存储数据库
Redis全称为: Remote Dictionary Server(远程数据服务),使用C语言编写,并以内存作为数据存储介质,所以读写数据的效率极高
特性
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
Redis不仅仅支持简单的key-value类型的数据,同时还把value分为list,set,zset,hash等数据结构存储
因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,提高效率
数据结构
redis是key-value的数据结构,每条数据都是一个键值对
键的类型是字符串,注意:键不能重复
值的类型分为五种
- String ------> 字符串
- List ------> 列表
- Hash ------> 哈希
- Set ------> 集合
- Zset ------> 有序集合
基本使用
连接redis:redis-cli
退出:exit
操作服务端:sudo service redis start/stop/restart
切换数据库:select n
- 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
五大数据类型使用
全局key操作
- 对redis的五个数据类型都适用的命令
- 查看所有的key:keys *
- 查看key的类型:type key
- 改名:rename key new_key
- 删除键值对:del key [key2 key3 ...]
- exists key 查看key是否存在
- 设置过期时间:expire key seconds
- persist key 删除过期时间
- ttl key 查看时间
- -1:没设置过期时间
- -2:不存在这个键
String类型
- string是redis最基本的类型,一个key对应一个value
- 增加数据:set key value(如果key存在,则修改为新的value)
- 查看数据:get key
- 追加数据:append key value
- 删除数据:del key
List类型
- List类型是一个字符串列表,可以在列表头部或尾部添加/删除数据,在插入数据时,如果该键并不存在,Redis将为该键创建一个
- 添加数据
- 在末尾添加(列表右边):rpush key value1 [value2 ...]
- 在头部添加(列表左边):lpush key value1 [value2 ...]
- 查看数据
- 下标范围:lrange key start stop
- 指定下标:lindex key index
- 修改数据:lset key index value
- 删除数据
- 从末尾删除(列表右边):rpop key
- 从头部删除(列表左边):lpop key
- 指定值删除:lrem key count(可以存在多个重复的值,指定value删除的次数) value
Hash类型
- hash类型的值是一个键值对集合,如:h_test : { field1:value1, field2:value2,...}
- 添加数据:hset key field value
- 查看域值:hget key field
- 查看所有的field:hkeys key
- 查看所有的value:hvals key
- 查看所有的键值对:hgetall key
Set类型
- Set类型为无序的字符集合,元素具有唯一性, 不重复
- 添加数据:sadd key member1 [member2 ...]
- 查看数据:smembers key
- 随机删除:spop key
- 指定删除:srem key member1 [member2 ...]
Sorted Set类型
- 每一个成员都会有一个分数(score)与之关联,成员是唯一的,但是分数(score)却是可以重复的,比如把一个班级的学生分成几组
- 添加数据: zadd key score member [score2 member2 …]
- 查看数据
- 根据索引:zrange key start stop
- 根据score:zrangebyscore key min max
- 删除数据
- 根据值:zrem key member [member …]
- 根据索引:zremrangebyrank key start stop
- 根据score:zremrangebyscore key min max