zoukankan      html  css  js  c++  java
  • Redis的安装与使用

    一、安装Redis

    github下载地址:https://github.com/MicrosoftArchive/redis/releases

    第一步:下载下来,一路next就行,要注意的就是勾选添加path和勾选内存限制max memory

    第二步:启动服务 redis-server  D:/tools/redis/redis.windows.conf    (自己文件安装目录)

    第三步:注册服务到windows服务中 redis-server  --server-install redis.windows.conf

    第四步:启动redis服务   redis-server --service-start

    第五步:关闭服务  redis-server --service-stop

    注:

      在一开始注册服务的时候可能会报错,可能是在安装时已经在windows服务中注册好了,所以可以检查一下windows的服务,或者直接跳过,试试关闭或启动服务

    二、redis的核心配置选项

      redis 安装成功以后,window下的配置文件保存在软件 安装目录下,如果是mac或者linux,则默认安装/etc/redis/redis.conf

    bind 127.0.0.1   // 绑定ip,如果需要远程访问,可以将这个ip换成一个真实ip
    
    port 6379    //端口
    
    daemonize   yes    // 是否以守护进程运行(主要是在linux和mac下需要配置),如果以守护进程运行,则不会在命令行阻塞,类似于windows的服务;r如果不以守护进程运行,则当前终端被阻塞 ;推荐设为yes
    
    dbfilename  dump.rdb   //数据文件
    
    logfile "c:/tool/redis/redis-server.log"     //日志文件
    
    database  16      // 数据库,默认有16个
    
    slaveof     //主从复制,类似于双机备份

    三、使用

    1、redis客户端连接服务器

    redis-cli  -h  'redis服务器ip'  -p 'redis服务器port'

    2、redis数据类型

     # string类型:

      字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,也就是byte类型,最大容量为512M

      

    如果设置的键不存在则为添加,如果设置的键已经存在则修改
    
    1、设置键值:
        set key value
    eg:   set name xiaoming
    
    2、设置多个键值:
         mset key1 value1 key2 value2...
    eg: mset a1 python a2 java a3 c
    
    3、设置键值及保存数据有效期:
        setex  key seconds value
    eg: setex name 3 xiaoming   #设置name的值为xiaoming,过期时间3秒
    
    4、重设数据的有效期
          expire key time
    
    5、追加值
        append key value
    eg: append a1 haha
    
    6、根据键获取值
        get key
    eg: get name
    
    7、获取多个值
        mget key1 key2 ...
    eg: mget a1 a2 a3
    键操作
    
    1、查找键,参数支持正则表达式
        keys pattern  
    eg: keys *     # 查看所有键
          keys a*    #查看名称中包含a的键
    
    2、判断键是否存在,如果存在返回1,不存在返回0
        exists key1
    eg: exists a1    #判断键a1是否存在
    
    3、查看键对应的value的类型
        type key
    eg: type a1
    
    4、删除键及对应的值
        del key key2 ...
    eg: del a2 a3
    
    5、查看有效时间,以秒为单位
        ttl key
    eg: ttl bb  #查看键bb的有效时间

     # hash类型:

    hash用于存储对象,对象的结构为属性、值,值的类型为string。
            key:{
                域:值,
                域:值,            
                域:值,
                域:值,
                ...
            }

     

    1、设置单个属性
        hset key field value
    eg: hset user name xiaoming  #设置键user的属性name为xiaoming
    
    2、设置多个属性
        hmset user key field1 value1 field2 value2 ...
    eg: hmset u2 name xiaohong age 11  #设置键u2的属性name为xiaohong,age为11
    
    3、获取指定键所有的属性
        hkeys u2
    
    4、获取某个属性的值
        hget key field
    
    5、获取多个属性的值
        hmget key field1 field2 ...
    eg: hmget u2 name age  #获取键u2属性name,age的值
    
    6、获取素有属性的值
        hvals key
    eg: hvalus u2 #获取键u2所有属性的值
    
    7、删除属性,属性对应的值会被一起删除
        hdel key field1 field2 ...
    eg: hdel u2 age

    # list类型:

      列表的元素类型为string。

      key:[ 值1,值2,值3.....]

    1、在左侧插入数据
        lpush key value1 value2 ...
    eg: lpush a1 a b c
    
    2、在右侧插入数据
        roush key value1 value2 ...
    eg: rpush a1 0 1
    
    3、在指定元素的前或后插入新元素
        linsert key before/after 现有元素 新元素
    eg: linsert a1 before b 3
    
    4、设置指定索引位置的元素值
        lset key index value
    eg: lset a 1 z   #设置键为a的列表中索引为1的元素的值为z
    
    5、删除指定元素
    将列表中前count次出现的值为value的元素移除
    count > 0 :从头到尾移除
    count < 0 :从尾到头移除
    count = 0 :移除所有
    lrem key count value
    eg: lrem a2 -2 b  #从键为a2的列表有才开始删除2个b
    
    6、根据键查看列表所有的元素
    lrange a2 0 -1

     #   set类型:

      无序集合,元素为string类型,元素唯一不重复,没有修改操作。

     # zset类型:

      有序集合,元素为string类型,元素唯一不重复,没有修改操作。

    1、添加元素
        sadd key member1 member2
    eg: sadd a3 zhangsan lisi wangwu
    
    2、返回素有的元素
        smembers key
    eg: smembers a3
    
    3、删除指定元素
        srem key member
    eg: srem a3 wangwu  #删除键a3的集合中元素wangwu

    四、针对redis中的内容扩展

      flushall 清空当前数据库中的所有数据

    针对各种数据类型它们的特性,使用场景如下:
    
    字符串string: 用于保存一些项目中的普通数据,只要键值对的都可以保存,例如,保存 session,定时记录状态
    
    哈希hash:用于保存项目中的一些字典数据,但是不能保存多维的字典,例如,商城的购物车
    
    列表list:用于保存项目中的列表数据,但是也不能保存多维的列表,例如,队列,秒杀,医院的挂号
    
    无序集合set:用于保存项目中的一些不能重复的数据,可以用于过滤,例如,投票海选的时候,过滤候选人
    
    有序集合zset:用于保存项目中一些不能重复,但是需要进行排序的数据,分数排行榜.

    五、关于redis的几个站点地址

    中文官网: http://www.redis.cn/

    英文官网:https://redis.io

    参考命令:http://doc.redisfans.com/

  • 相关阅读:
    poj 2002 Squares 几何二分 || 哈希
    hdu 1969 Pie
    hdu 4004 The Frog's Games 二分
    hdu 4190 Distributing Ballot Boxes 二分
    hdu 2141 Can you find it? 二分
    Codeforces Round #259 (Div. 2)
    并查集
    bfs
    二维树状数组
    一维树状数组
  • 原文地址:https://www.cnblogs.com/zhang-yl/p/10580981.html
Copyright © 2011-2022 走看看