zoukankan      html  css  js  c++  java
  • Redis的浅入门

    Redis的浅入门
    # 缓存的思想

    问题提出:我们的用户数量上亿,如果登录,访问数据库user特别耗时,该怎么办?——提出缓存

    方法:怎样从缓存在获取数据?

    *有数据:
    		直接返回
    *无数据:
    		(1)从数据库查询
    		(2)将数据放入缓存
    		(3)返回数据
    

    认识redis

    特点:-属于NOSQL,数据之间没有关联关系,数据存储在内存。
    对比一下关系型数据库(MYSQL..)数据之间有关联,数据存储在硬盘的文件上。

    数据结构-[key,value]

    • key - 字符串
    • value - 5种不同

    value数据结构:

    • 字符串类型 String
    • 哈希类型 hash
    • 列表类型 list
    • 集合类型 set
    • 有序集合类型 sortedset

    五种数据结构命令

    https://www.redis.net.cn/ 可以看一个学习redis的中文网

    1. 字符串类型 string
    		1. 存储: set key value
    
    		2. 获取: get key
    
    		3. 删除: del key
    
    2. 哈希类型 hash
    		1. 存储: hset key field value
    
    		2. 获取: 
    			* hget key field: 获取指定的field对应的值
    
    			* hgetall key:获取所有的field和value
    
    				
    		3. 删除: hdel key field
    	
    3. 列表类型 list:可以添加一个元素到列表的头部(左边)或者尾部(右边)
    		1. 添加:
    			1. lpush key value: 将元素加入列表左表
    				
    			2. rpush key value:将元素加入列表右边
    
    		2. 获取:
    			* lrange key start end :范围获取
    
    		3. 删除:
    			* lpop key: 删除列表最左边的元素,并将元素返回
    			* rpop key: 删除列表最右边的元素,并将元素返回
    			
    4. 集合类型 set : 不允许重复元素
    		1. 存储:sadd key value
    
    		2. 获取:smembers key:获取set集合中所有元素
    
    		3. 删除:srem key value:删除set集合中的某个元素	
    
    5. 有序集合类型 sortedset:不允许重复元素,且元素有顺序.每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
    
    		1. 存储:zadd key score value
    
    		2. 获取:zrange key start end [withscores]  (start:0,end:-1)
    
    		3. 删除:zrem key value
    
    6. 通用命令
    		1. keys * : 查询所有的键
    		
    		2. type key : 获取键对应的value的类型
    		
    		3. del key:删除指定的key value
    

    持久化

    问题提出:redis服务器重启后,或电脑重启,我们的数据会丢失,怎么办?

    持久化出现:将redis内存中的数据持久化保存到硬盘的文件中。

    机制:

    • RDB:默认情况,检测key的变化情况来持久化数据

    这里我们通过修改redis.windows.conf文件

    #   after 900 sec (15 min) if at least 1 key changed
    save 900 1
    #   after 300 sec (5 min) if at least 10 keys changed
    save 300 10
    #   after 60 sec if at least 10000 keys changed
    save 60  10000
    

    修改完成后重启redis服务器,并制定配置文件名称

    到目录,通过命令行方式运行-redis-server.exe redis-windows.conf

    • AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据

    还是修改redis.windows.conf文件

    appendonly no(关闭AOF) ---> yes(开启AOF)
    
    # appendfsync always :每一次操作都进行持久化
    appendfsync everysec :每隔一秒就行一次持久化
    # appendfsync no : 不进行持久化
    

    Jedis

    简要说就是一款java操作redis数据库的工具。

    在操作前要打开redis服务器端,今天打开的时候遇到了一些问题:

    QForkMasterInit: system error caught. error code=0x000005af, message=VirtualAllocEx failed.: unknow

    翻译过来就是:没有设置redis的最大内存

    解决办法:

    在redis的配置文件即redis.wiondows.conf(我的是windows64版本)中加入maxmemory和maxheap配置(加在最最后即可)

    maxmemory 268435456
    maxheap 314572800

    用cmd启动,成功!记得一定要加上配置文件

    redis-server.exe redis.windows.conf


    Jedis使用方法和redis几乎一样,这里只是一次浅入的认识,后期有更深入再介绍。

    最后强调一句:

    使用redis缓存一些不经常发生变化的数据。数据库的数据一旦发生改变,则需要更新缓存。

  • 相关阅读:
    Informatica 常用组件Aggregator之三 使用排序输入
    Informatica 常用组件Aggregator之二 分组依据端口
    Informatica 常用组件Aggregator之一 聚合表达式
    Informatica 常用组件Filter之四 优化
    Informatica 常用组件Filter之三 创建FIL
    Informatica 常用组件Filter之二 过滤条件
    Informatica 常用组件Filter之一 概述
    Ubuntu 16.04 升级 PHP 版本至 7.1
    Socket远程调试日志之 SocketLog的简单实用
    Tesseract-ocr
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/11990614.html
Copyright © 2011-2022 走看看