redis详解
来源:互联网 发布:淘宝企业店铺有优势吗 编辑:程序博客网 时间:2024/05/17 06:18
redis详解
一、redis介绍:
1.不需要定义表结构,直接储存数据。
2.基于缓存提升系统性能
3.消息队列处理,先进先出。
4.数据储存 :a增删改查 b硬盘持久化。
二、redis.conf配置
1.doemonize yes :表示后台启动
2.port :表示端口号 一般为了安全不用默认
3..../redis-server ..../redis.conf 启动服务
4.redis- cli -h localhost -p 3306 info 显示redis版本详细信息
三、单进程单线程好处
1.代码更清晰,处理逻辑更简单
2.不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗
3.不存在多进程或者多线程导致的切换而消耗CPU
四、单进程单线程弊端
1.无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善;
2.其他一些优秀的开源软件采用的模型
五、五种数据类型分别在什么情况下使用
1.string:
类型是二进制安全的。意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象;从内部实现来看其实string可以看作byte数组,最大上限是1G字节。
例:将一些访问频繁的静态页面(html,css,),储存到缓存中 key(注册页面,键的名字):vaule(序列话后的类型)
2.list类型:
使用Lists结构,我们可以轻松地实现最新消息排行等功能,List的另一个应用就是消息队列,可以利用List的PUSH操作,将任务存在List中,将访问高的功能存到消息对列里,可以解决高并发的问题。
例:key(体育新闻):value1(篮球新闻)
key(体育新闻):value2(足球新闻)
篮球新闻先存入list 所以篮球新闻消息最新
hash类型:
hash类型是每个key对用一个HashTable,适合于存储对象,例如用户的信息对象,用户id作为key,具体信息作为value
列:车牌号(key):field1(车架号):value(值)
field2(发动机号):value(值)
等等。
set类型:
在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。
Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作。
例:key(用户1):value1(关注人1)
key(用户1):value1(关注人2)
key(用户1):value1(关注人3)
sorted set 类型:
sorted set 类似于set ,只不过sorted set 是一种有序集合,在web中比较有用,如我们要对博客(阅读数最高)按照顶贴进行排序,
我们就可以将排序的字段设置成sorted set 的score,将具体数值设置成具体的值,每次更新数据只需要用zadd命令修改score的值就可以了。
列:总贴(key):num1(阅读量) value1 (帖子1)
num2(阅读量) value2 (帖子2)
当有人阅读进行zadd 修改num 然后通过从分高到分低的顺序读取出来。
六、五种数据类型的数据结构对比有什么不同(是否可以重复)
1.string的数据结构就是 key:value(string/int/float),出现重复key会进行覆盖。
2.list的数据结构就是
key: value1(string/int/float)
value2(string/int/float)
value2(string/int/float)
value3(string/int/float)
....(元素可以重复,遵循先进先出,用作消息对列)
3.hash的数据结构
class: field1:value(string/int/float)
field2:value(string/int/float)
field3:value(string/int/float)
...(不可以重复,但是field对应的值可以重复)
4.set的数据结构
key: value1(string/int/float)
value2(string/int/float)
value3(string/int/float)
....(集合成员是唯一的,这就意味着集合中不能出现重复的数据。)
5.sort set的数据结构
key: value1(string/int/float)
value2(string/int/float)
value3(string/int/float)
...(有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
- Redis文档--详解redis
- redis详解
- redis详解
- redis详解
- redis详解
- Redis详解
- redis详解
- Redis详解
- Redis详解
- redis 详解:
- redis详解
- Redis 详解
- Redis详解
- Redis详解
- Redis 详解
- Redis详解
- redis详解
- Redis配置文件redis.conf 详解
- 二分查找 (java实现)
- 如何通过反射创建对象?
- 安卓app如何处理串口的响应信息
- (数据库)-触发器
- Android Retrofit2的使用
- redis详解
- SpringMVC示例
- Android fitsSystemWindows 作用
- libcudnn.so.6:cannot open sharedobjectfile: No such file or directory
- Whither Swift?
- BZOJ 1030 文本生成器 AC自动机+dp
- Pandas透视表和交叉表
- 获取python路径
- 3D数学基础---坐标系