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/

  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/zhang-yl/p/10580981.html
Copyright © 2011-2022 走看看