zoukankan      html  css  js  c++  java
  • redis

    Redis

    1.1    缓存策略

    1.1.1 策略说明

    使用缓存,主要目的为了降低服务器访问物理资源的访问频次.提高了用户获取数据的时间.

    注意事项: 缓存中的数据必须和数据库中的数据一致.

    1.1.2 缓存设计的思路

    1. 缓存中如何保存数据?  K-V结构,并且key不能重复.
    2. 使用C语言开发.
    3. 缓存的运行环境应该是内存中.
    4. 缓存数据的持久化问题.保证服务器断电之后数据依然存在.
    5. 如何控制内存数据的大小? LRU算法(时间维护) LFU(使用次数)
    6. 缓存设计时,应该考虑高可用/集群问题.

    1.2    Redis

    1.2.1 什么是redis

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)list(链表)set(集合)zset(sorted set --有序集合)hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

    1.2.2 Redis下载

    网址: http://www.redis.cn/download.html

     

    1.2.3 Redis安装

    1.上传安装包

     

    2.解压redis

    [root@localhost src]# tar -xvf redis-5.0.4.tar.gz

    3.修改文件名称

    4.编译/安装redis

    编译: make

    安装: make install

     

    启动redis

    redis-server

    1.2.4 修改redis配置文件

    1.注释IP绑定

     

    2.关闭保护模式

     

    3.开启后台启动

     

    1.2.5 Redis常规操作命令

    1.启动redis

    redis-server redis.conf

    2.进入客户端

    redis-cli -p 6379

     退出客户端:

    ctrl+c 
    exit
    quit

    3.关闭客户端

    redis-cli -p 6379 shutdown

    说明:如果操作的redis是默认的端口号6379 则命令可以简化

    redis-cli    redis-cli shutdown

    1.2.6 操作redis客户端软件

    说明:解压之后双击打开运行即可,如果出现异常则运行vcredist_x86.exe安装C++编译器即可.

     

    连接Redis服务器.

     

    1.1    Redis命令

    1.1.1 String类型

    命令

    说明

    案例

    set

    添加key-value

    set username admin

    get

    根据key获取数据

    get username

    strlen

    获取value的长度

    strlen key

    exists

    判断key是否存在

    exists name

    返回1存在  0不存在

    del

    删除redis中的key

    del key

    Keys

    用于查询符合条件的key

    keys * 查询redis中全部的key

    keys n?me 使用占位符获取数据

    keys nam* 获取nam开头的数据  

    mset

    赋值多个key-value

    mset key1 value1 key2 value2 key3 value3

    mget

    获取多个key的值

    mget key1 key2

    append

    对某个key的值进行追加

    append key value

    type

    检查某个key的类型

    type key

    select

    切换redis数据库

    select 0-15 redis中共有16个数据库

    flushdb

    清空单个数据库

    flushdb

    flushall

    清空全部数据库

    flushall

    incr

    自动加1

    incr key

    decr

    自动减1

    decr key

    incrby

    指定数值添加

    incrby 10

    decrby

    指定数值减

    decrby 10

    expire

    指定key的生效时间 单位秒

    expire key 20

    key20秒后失效

    pexpire

    指定key的失效时间 单位毫秒

    pexpire key 2000

    key 2000毫秒后失效

    ttl

    检查key的剩余存活时间

    ttl key

    persist

    撤销key的失效时间

    persist key

  • 相关阅读:
    oracle-高级查询
    java-集合框架
    java-String-StringBuffer
    ROS消息, 服务, 主题, 订阅 5
    ROS消息, 服务, 主题, 订阅 4
    ROS消息, 服务, 主题, 订阅 3
    ROS消息, 服务, 主题, 订阅 2
    ROS消息, 服务, 主题, 订阅 1
    可交互的Marker
    RVIZ建Maker
  • 原文地址:https://www.cnblogs.com/yunianzeng/p/12015611.html
Copyright © 2011-2022 走看看