redis下载
下载地址:
https://redis.io/
redis解压及安装
1.命令进入下载目录: cd /home/t/soft
2.命令解压: tar -xzvf redis-3.2.8.tar.gz
3.命令进入到解压后的目录 cd /redis-3.2.8
4.命令make
5.命令进入src文件夹: cd /src
6.安装: make install
7.进入utils文件夹,与src在同一目录内
8.安装: sh install_server.sh
9.若按照默认配置安装只需按压enter键向下执行
10.使用redis客户端命令:redis-cli
若是权限有问题,需要设置为root用户进行安装。
-$:表示普通用户
-#:表示root用户
设置root用户方法,使用命令su ,然后输入密码:
redis与其他存储结构对比
来自资料:Redis实战
名称 | 类型 | 数据存储选项 | 查询类型 | 附加功能 |
---|---|---|---|---|
redis | 使用内存存储的非关系数据库 | 字符串、列表、集合、散列、有序集合 | 每种数据类型都有自己专属命令,还有批量操作和不完全的事务支持 | 发布与订阅,主从复制,持久化,脚本 |
memcache | 使用内存存储的价值对缓存 | 键值之间的映射 | 创建、读取、更新、删除等命令 | 为提升性能而设的多线程服务器 |
mysql | 关系型数据库 | 表、行、视图、支持空间、第三方扩展 | SELECT、INSERT、UPDATE、DELETE、函数、存储过程 | 支持ACID性质,主从复制,由第三方支持的多主赋值 |
mongoDB | 使用硬盘存储的非关系文档存储 | 表,表之间可包含多个无schema的bson文档 | 创建、读取、更新、删除、条件查询等命令 | 支持map-reduce操作,主从复制,分片,空间索引 |
redis数据结构简介
结构类型 | 结构存储值 |
---|---|
STRING | 字节串、整数、浮点数 |
LIST | 一个链表,链表的每个节点都包含了一个字符串 |
SET | 包含字符串的无序收集器,并且被包含的每个字符串都是独一无二,各不相同的 |
HASH | 包含键值对的无需散列表 |
ZSET(有序集合) | 字符串成员鱼浮点数分值之间的有序映射,元素的排列顺序由分值的大小决定的 |
redis常用命令
1、STRING 结构
命令 | 行为 |
---|---|
GET key-name | 获取存储在key-name中的值 |
SET key-name value | 设置存储在key-name中的值 |
DET key-name | 删除春初在key-name中的值 |
INCR key-name | 将key-name中的值加1,只适用于值为整数 |
DECR key-name | 将key-name中的值减1,只适用于值为整数 |
INCRBY key-name amount | 将key-name中的值加amount,只适用于值为整数 |
DECRBY key-name amount | 将key-name中的值减amount,只适用于值为整数 |
INCRBYFLOAT key-name amount | 将key-name中的值加浮点数amount,只适用于redis2.6版本以上 |
APPEND key-name value | 将value追加得到给定的key-name值的末尾 |
GETRANGE key-name start end | 获取key-name由start下标开始到end下标结束的字符串,包含开始和结束 |
SETRANGE key-name offset value | 将从start偏移offset开始的子串设置为给定值value |
GETBIT key-name offset | 将字节看作是二进制位串,并返回二进制中位串中偏移量为offset的二进制位的值 |
SETBIT key-name offset value | 将字节串看作是二进制位串,并将位串中偏移量为offset的二进制位的值设置为value |
2、LIST结构
命令 | 行为 |
---|---|
RPUSH key-name value [value…] | 将一个或多个值推入列表的右端 |
LPUSH key-name value [value…] | 将一个或多个值推入列表的左端 |
RPOP key-name | 移除并返回列表最右端值,类似弹出最右边值 |
LPOP key-name | 弹出最左边值 |
LINDEX key-name offset | 返回列表中偏移量为offset的元素,注意从左边开始 |
LRANGE key-name start end | 返回列表中从start到end间的所有元素,从左边开始,包含关系 |
LTRIM key-name start end | 只保留从start到end间的所有元素,从左边开始,包含关系 |
BLPOP key-name [key-name…] timeout | 从第一个非空列表中弹出位于最左侧的元素,在timeout秒内阻塞并等待可弹出的元素 |
BRPOP key-name [key-name…] | 从第一个非空列表中弹出位于最右侧的元素,在timeout秒内阻塞并等待可弹出的元素 |
RPOPLPUSH source-key dest-key | 从source-key的右侧弹出元素然后将其推入到dest-key的最左侧 |
BRPOPLPUSH source-key dest-key timeout | 从source-key的右侧弹出元素并推入到dest-key的最左侧,并返回该元素,若是source-key的右侧为空,则阻塞并等待timeout秒,直至可以弹出元素,否则返回nil |
3、SET结构
命令 | 行为 |
---|---|
SADD key-name item [item…] | 将一个或多个元素添加到集合,并返回添加成功数量 |
SREM key-name item [item…] | 从集合中移除一个或多个元素,并返回移除成功数量 |
SISMEMBER key-name item | 检查元素item是否存在,存在返回1,否则返回0 |
SCARD key-name | 返回集合包含元素数量 |
SMEMBERS key-name | 返回集合包含的所有元素 |
SRANDMEMBER key-name count | 随机返回集合指定个数的元素,count为正数是不重复,为负数是可能重复 |
SPOP key-name | 随机从集合中移除一个元素,并返回被移除的元素 |
SMOVE source-key dest-key item | 从source-key集合中移除元素item并添加到dest-key集合中,成功返回1,否则返回0 |
SDIFF key-name [key-name…] | 返回存在第一个集合但是不存在其他集合中的第一个集合的元素 |
SDIFFSTORE dest-key [key-name…] | 将存在第一个集合但是不存在其他集合中的第一个集合的元素存储到dest-key中 |
SINTER key-name [key-name…] | 返回同时存在所有集合中的元素,及集合的交集元素 |
SINTERSTORE dest-key key-name [key-name…] | 将所有集合的交集元素存储到dest-key中 |
SUNION key-name [key-name…] | 返回那些至少存在在一个集合中的元素,即所有集合的并集元素 |
SUNIONSTORE dest-key key-name [key-name…] | 将所有集合的并集元素存储到dest-key中,返回成功存储个数 |
4、HASH结构
命令 | 行为 |
---|---|
HMGET key-name key [key…] | 从散列key-name里获取一个或多个键的值 |
HGET key-name key | 从散列key-name里获取一个键的值 |
HMSET key-name key value [key value…] | 为散列添加一个或多个键值对 |
HSET key-name key value | 为散列添加一个键值对 |
HDEL key-name key [key…] | 删除散列中键值 |
HLEN key-name | 返回散列中包含的键值的数量 |
HEXISTS key-name key | 检查key是否存在在key-name三列种 |
HEKYS key-name | 获取散列中所有key |
HVALS key-name | 获取三列种所有值 |
HGETALL key-name | 获取散列中所有键值对 |
HINCRBY key-name key increment | 将散列的键key存储的值加上整数increment,返回运算后结果 |
HINCRBYFLOAT key-name key increment | 将散列的键key存储的值加上浮点数increment,返回运算后结果 |
5、ZSET结构
命令 | 行为 |
---|---|
ZADD key-name score member [score member…] | 将带有给定分值的成员添加到有序集合 |
ZREM key-name member[member…] | 从有序集合中移除给定成员,并返回给定成员数量 |
ZCARD key-name | 返回有序集合包含的成员数量 |
ZINCRBY key-name increment member | 将member成员的分值上加上increment |
ZCOUNT key-name min max | 返回分值介于min和max之间的成员数量 |
ZRANK key-name member | 返回成员memeber在有序集合中的排名 |
ZSCORE key-name member | 返回成员member在有序集合中的分值 |
ZRANGE key-name start stop [WITHSCORES] | 返回有序集合中排名介于start和stop之间的成员,如果给定了可选的WITHSCORES选项,那么命令会将成员的分值也一并返回 |
ZREVRANK key-name member | 返回有序集合中member的排名,成员按照分值从大到小排序 |
ZREVRANGE key-name start top [WITHSCORE] | 返回有序集合中给定排名范围的成员,成员按照分值从大到小排序 |
ZRANGEBYSCORE key-name min max [WITHSCORE] | 返回集合中,分值介于min和max之间的所有成员 |
ZREVRANGEBYSCORE key-name max min [WITHSCORE] | 返回集合中,分值介于min和max之间的所有成员,并按照分支由大到小排序 |
ZREMRANGEBYRANK key-name start stop | 移除有序集合中,排名位于start和stop间的成员 |
ZREMRANGEBYSCORE key-name min max | 移除有序集合中,分值位于min和max之间的所有成员 |