Redis基础知识汇总

1.什么是Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的非关系型数据库,并提供多种语言的API。

  • Redis是远程的
  • Redis是基于内存的
  • Redis是非关系型数据库

2.Redis的安装

2.1.Window安装Redis
  1. 选择需要版本下载安装包

  2. 解压Redis安装包,当前目录打开cmd窗口,redis-server.exe redis.windows.conf 启动Redis

    redis-server.exe redis.windows.conf
    
  3. 如果需要Redis一直存在,执行 redis-server.exe --service-install redis.windows-service.conf 添加到服务列表

    redis-server.exe --service-install redis.windows-service.conf
    
  4. 使用 redis-cli.exe -h localhost -p 6379 或者运行 redis-cli.exe 打开客户端

2.2.Linux安装Redis
  1. 选择需要版本获取源码,wget http://download.redis.io/releases/redis-5.0.2.tar.gz

  2. 解压文件包 tar xzf redis-5.0.2.tar.gz

  3. 进入解压文件夹编译源码 cd redis-5.0.2,make

  4. make install 安装

  5. redis-cli 打开客户端

    wget http://download.redis.io/releases/redis-5.0.2.tar.gz
    tar xzf redis-5.0.2.tar.gz
    cd redis-5.0.2
    make
    make install
    

在 Window 下,配置文件为 redis.windows.conf,在 Linux 下,配置文件是redis.conf,一下常用配置

  • daemonize:配置Redis是否以守护进程的方式运行,默认no,使用yes启用守护进程
  • port:Reids占用端口号,默认6379
  • bind:绑定ip,Redis接受该ip的请求,默认127.0.0.1即本机,修改为0.0.0.0可接受所有
  • timeout :客户端连接超时时间
  • databases:数据库数量,默认16

3.Redis数据类型

Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(Sorted Set:有序集合)。

  • String:一个 key 对应一个 value,可以是字符串、整数或浮点,统称为元素 ,支持对字符串字符处理操作,对整数类型加减
  • Hash:key-valued的散列组,其中key是字符串,value是元素 ,支持按照key进行增加删除
  • List:一个有序(插入顺序)序列集合 ,支持序列两端推入、或弹出元素、增剪、查改或移除元素
  • Set:无序的集合,各不相同的元素 ,可从集合中插入或删除元素
  • Sorted Set:带分数的score-value有序集合,其中score为浮点,value为元素,以score排序,支持集合插入,按照分数范围查找

4.Redis的常用操作命令

4.1.String类型操作命令
  • set key value:添加key-value的数据,存在则更新
  • get key:根据key获取value
  • incr key:对于数字型value,将key存储的值加 1,即value = value + 1
  • decr key:对于数字型value,将key存储的值减 1,即value = value - 1
  • incrby key num:对于数字型value,将key所存储的值增加num,即value = value + num
  • decrby key num:对于数字型value,将key所存储的值减去num,即value = value - num
  • append key str:将str字符串拼接到key所对应的val末尾,数字会转化为字符串,即value =value + str
  • setnx key value:只有在key不存在的时候才添加,key存在则不做任何操作
  • mget key [key2...]:一次获取多个key的值
  • msetkey value [key2 value2...]:一次添加多组key-value
  • getset:添加key-value,并返回key之前所对应的值,不存在返回nil
  • setex key seconds value:添加key-value,并设置超时时间为second秒
  • strlen key:返回key所对应value的长度
  • del key:删除存储的key-value数据
4.2.Hash类型操作命令
  • hset key field value: 存储key-hash[field-value],存在则更新
  • hmset key field value [field2 value2...]:存储多组key-hash
  • hsetnx key field value:仅当field不存在是,在哈希表key下添加field-value,否则不做任何操作
  • hget key field:获取哈希表key中字段field的值
  • hget key field [field2...]:获取哈希表key中多个字段field,field...的值
  • hgetall key:获取哈希表key中所有字段field及其值value的集合
  • hvals key:获取哈希表key中所有值value的集合
  • hlen key:获取哈希表key中存储字段的数量
  • hkeys key:获取哈希表key中所有字段field的集合
  • hdel key field [field2...]:删除哈希表key中字段field,field1...
  • hexitst key field:查看哈希表key中field字段是否存在,存在返回1,不存在返回0
4.3.List类型操作命令
  • lpush key value [value2....]:将一个或多个值插入到列表key的头部 (左边)
  • rpush key value [value2....]:将一个或多个值插入到列表key的尾部 (右边)
  • lpop key:获取并且移出列表key的第一个元素(左边)
  • rpop key:获取并移出列表key的最后一个元素(右边)
  • lrange key start stop:获取列表key指定范围内的元素
  • llen key:获取键为key的列表长度
  • lindex key index:获取列表key中指定索引的值
  • lrem key count value:删除列表key中count数量的value值
    • count > 0:从表头(左边)开始向表尾搜索,移除与 value相等的元素,数量为 count
    • count < 0:从表尾(右边)开始向表头搜索,移除与 value相等的元素,数量为 count
    • count = 0:移除表key中所有与 value相等的值
  • lset key index value:将列表ky中索引index位置的值设置为value
4.4.Set类型操作命令
  • sdd key member [member2...]:向集合key添加一个或多个成员,不重复添加
  • scard key:获取集合key的成员数量
  • sinter key [key2...]:返回给定集合key,key2...的交集
  • sismember key member:判断member是否在集合key中存在,存在返回1,不存在返回0
  • smembers key:返回集合key中的所有成员
  • srandmember key [count]:随即返回集合key中一个或count个成员
  • srem key member [member2...]:删除集合key中member,member2...
4.5.zset类型操作命令
  • zadd key score member [score2 member2....]:向集合key中添加一个或者多个分数为score的成员,存在则更新分数
  • zcard key:获取有序集合key中成员的数量
  • zcount key min max:获取有序集合key中分数在[min,max]区间内成员的数量
  • zincrby key increment member:将有序集合key中成员member的分数增加increment,即score = score + increment
  • zrange key start stop [withscores]:获取有序集合key索引区间[start, stop]的成员,索引0开始,stop为-1则一直获取到集合最后一个成员,withscores参数表示带上分数
  • zrank key member:返回有序集合key中指定成员member的索引
  • zrem key member [member2....]:移除有序集合key中的一个或多个成员
  • zrevrange key start stop [withscores]:反序返回有序集key中索引区间[start, stop](反序后的索引)的成员,索引0开始,stop为-1则一直获取到集合最后一个成员,withscores参数表示带上分数
  • zscore key member:获取有序集合key中成员member的分数
11-28 06:05