Redis基础知识汇总
1.什么是Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的非关系型数据库,并提供多种语言的API。
- Redis是远程的
- Redis是基于内存的
- Redis是非关系型数据库
2.Redis的安装
2.1.Window安装Redis
-
选择需要版本下载安装包
- 官网下载地址 : http://redis.io/download
- github下载地址 :https://github.com/microsoftarchive/redis/tags
-
解压Redis安装包,当前目录打开cmd窗口,redis-server.exe redis.windows.conf 启动Redis
redis-server.exe redis.windows.conf
-
如果需要Redis一直存在,执行 redis-server.exe --service-install redis.windows-service.conf 添加到服务列表
redis-server.exe --service-install redis.windows-service.conf
- 使用 redis-cli.exe -h localhost -p 6379 或者运行 redis-cli.exe 打开客户端
2.2.Linux安装Redis
- 选择需要版本获取源码,wget http://download.redis.io/rele...
- 解压文件包 tar xzf redis-5.0.2.tar.gz
- 进入解压文件夹编译源码 cd redis-5.0.2,make
- make install 安装
-
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的分数
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。