Ubuntu安装Redis及使用

2021-01-22  本文已影响0人  大地缸

title: "Ubuntu安装Redis及使用"
date: 2021-01-22T08:44:36+08:00
draft: true
tags: ['ubuntu','redis']
author: "dadigang"
author_cn: "大地缸"
personal: "http://www.real007.cn"


关于作者

http://www.real007.cn/about

Ubuntu安装Redis及使用

NoSQL简介

优点/缺点

高可扩展性

分布式计算

低成本

架构的灵活性,半结构化数据

没有复杂的关系

没有标准化

有限的查询功能(到目前为止)

最终一致是不直观的程序

分类

类型部分代表特点列存储Hbase 、 Cassandra 、 Hypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。文档存储MongoDB 、CouchDB文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。key-value存储TokyoCabinet/Tyrant、 BerkeleyDB、MemcacheDB 、 Redis可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)图存储Neo4J、 FlockDB图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。对象存储db4o 、 Versant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。xml数据库BerkeleyDB、 XML、 BaseX高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

redis相关资源:

Redis 官网: https://redis.io/

Redis 在线测试: http://try.redis.io/

Redis菜鸟教程: https://www.runoob.com/redis/redis-tutorial.html

Redis安装 配置服务器 启动客户端 数据操作 发布订阅 主从配置 卸载Redis

Redis安装

在线安装

直接输入命令 sudo apt-get install redis-server

安装完成后,Redis服务器会自动启动。

使用ps -aux|grep redis命令可以看到服务器系统进程默认端口6379

redis      2890  0.2  0.1  41872  6064 ?        Ssl  14:17   0:07 /usr/bin/redis-server 127.0.0.1:6379
hzlarm     3222  0.0  0.0  11324   780 pts/2    S+   15:02   0:00 grep --color=auto redis

使用netstat -nlt|grep 6379命令可以看到redis服务器状态

tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN

使用sudo /etc/init.d/redis-server status命令可以看到Redis服务器状态

在这里插入图片描述

下载安装包:

Redis安装 配置服务器 启动客户端 数据操作 发布订阅 主从配置 卸载Redis

Redis服务器基本配置

配置文件为/etc/redis/redis.conf(在线安装推荐)或者 /usr/local/redis/redis.conf(手动安装)

首先sudo vi /etc/redis/redis.conf

添加Redis的访问账号

Redis服务器默认是不需要密码的,假设设置密码为hzlarm。

去掉requirepass 前面的注释#,在后面添加密码

requirepass hzlarm

开启Redis的远程连接

注释掉绑定地址#bind 127.0.0.1

修改Redis的默认端口

port 6379

Redis以守护进程运行
Redis的数据文件

dbfilename dump.rdb

数据文件存储路径

dir /var/lib/redis

配置完成后重新启动服务器

sudo /etc/init.d/redis-server restart or

sudo service redis-server restart or

sudo redis-server /etc/redis/redis.conf

Redis安装 配置服务器 启动客户端 数据操作 发布订阅 主从配置 卸载Redis

启动客户端

安装Redis服务器,会自动地一起安装Redis命令行客户端程序。命令行输入 redis-cli 如果设置了密码hzlarmredis-cli -a hzlarm

常用命令: Redis命令不区分大小写

ping返回PONG表示畅通

help 命令行的帮助

quit 或者Ctrl+d或者Ctrl+c退出

键的命令

数据操作

类型简介特性场景String(字符串)二进制安全可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M—Hash(字典)键值对集合,即编程语言中的Map类型适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)存储、读取、修改用户属性List(列表)链表(双向链表)增删快,提供了操作某一段元素的API1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列Set(集合)哈希表实现,元素不重复1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐Sorted Set(有序集合)将Set中的元素增加一个权重参数score,元素按score有序排列数据插入集合时,已经进行天然排序1、排行榜 2、带权重的消息队列

string

命令

设置

设置键值set key value

设置键值及过期时间,以秒为单位SETEX key seconds value

设置键值及过期时间,以毫秒为单位PSETEX key milliseconds value

设置多个键值MSET key value [key value ...]

只有在 key 不存在时设置 key 的值。SETNX key value

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。MSETNX key value [key value ...]

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。SETRANGE key offset value

获取

根据键获取值,如果不存在此键则返回nilGET key

根据多个键获取多个值MGET key1 [key2 ...]

返回 key 中字符串值的子字符GETRANGE key start end

将给定 key 的值设为 value ,并返回 key 的旧值(old value)。GETSET key value

运算(要求:值是数字)

将key对应的value加1INCR key

将key对应的value加整数INCRBY key increment

将key对应的value减1DECR key

将key对应的value减整数DECRBY key decrement

其它

追加值APPEND key value

获取值长度STRLEN key

hash

命令

设置

设置单个属性HSET key field value

设置多个属性HMSET key field1 value [field2 value ...]

只有在字段 field 不存在时,设置哈希表字段的值。HSETNX key field value

获取

获取一个属性的值HGET key field

获取多个属性的值HMGET key field1 [field2 ...]

获取所有属性和值HGETALL key

获取所有的属性HKEYS key

返回包含属性的个数HLEN key

获取所有值HVALS key

其它

判断属性是否存在HEXISTS key field

删除属性及值HDEL key field [field ...]

返回值的字符串长度HSTRLEN key field ERR unknown command ‘HSTRLEN’

查看哈希表 key 中,指定的字段是否存在HEXISTS key field

为哈希表 key 中的指定字段的整数值加上增量 incrementHINCRBY key field increment

为哈希表 key 中的指定字段的浮点数值加上增量 incrementHINCRBYFLOAT key field increment

迭代哈希表中的键值对HSCAN key cursor [MATCH pattern] [COUNT count]

list

命令

设置

在头部插入一个或多个数据LPUSH key value1 [value2 ...]

将一个值插入到已存在的列表头部LPUSHX key value

在尾部插入一个或多个数据RPUSH key value1 [value2 ...]

为已存在的列表添加值RPUSHX key value

在列表的元素前或后插入新元素LINSERT key BEFORE|AFTER pivot value

通过索引设置列表元素的值LSET key index value(索引是基于0的下标,索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素)

获取

移出并获取列表的第一个元素LPOP key

移出并返回列表最后一个元素RPOP key

移除列表元素LREM key count value(count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。count = 0 : 移除表中所有与 VALUE 相等的值。)

获取列表指定范围内的元素LRANGE key start stop

(start和stop偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素)

移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。BLPOP key1 [key2 ] timeout

移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。BRPOP key1 [key2 ] timeout

从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。BRPOPLPUSH source destination timeout

移除列表的最后一个元素,并将该元素添加到另一个列表并返回RPOPLPUSH source destination

其它

对一个列表进行修剪(trim),让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除LTRIM key start stop

(start 和 stop偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素)

获取列表长度LLEN key

通过索引获取列表中的元素LINDEX key index

set

命令

设置

添加元素SADD key member [member ...]

获取

返回key集合所有的元素SMEMBERS key

返回集合元素个数SCARD key

其它

求多个集合的交集SINTER key [key ...]

返回给定所有集合的交集并存储在集合destination 中SINTERSTORE destination key1 [key2]

求某集合与其它集合的差集SDIFF key [key ...]

返回给定所有集合的差集并存储在 集合destination 中SDIFFSTORE destination key1 [key2]

将 member 元素从 source 集合移动到 destination 集合SMOVE source destination member

求多个集合的合集SUNION key [key ...]

判断元素是否在集合中SISMEMBER key member

移除并返回集合中的一个随机元素SPOP key

返回集合中一个或多个随机数SRANDMEMBER key [count]

移除集合中一个或多个成员SREM key member1 [member2]

所有给定集合的并集存储在 destination 集合中SUNIONSTORE destination key1 [key2]

迭代集合中的元素SSCAN key cursor [MATCH pattern] [COUNT count]

zset

命令

设置

添加ZADD key score member [score member ...]

获取

返回指定范围内的元素ZRANGE key start stop

返回元素个数ZCARD key

返回有序集key中,score值在min和max之间的成员ZCOUNT key min max

返回有序集key中,成员member的score值ZSCORE key member

ZINCRBY key increment member

有序集合中对指定成员的分数加上增量 increment

ZINTERSTORE destination numkeys key [key ...]

计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中

ZLEXCOUNT key min max

在有序集合中计算指定字典区间内成员数量

ZRANGEBYLEX key min max [LIMIT offset count]

通过字典区间返回有序集合的成员

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]

通过分数返回有序集合指定区间内的成员

ZRANK key member

返回有序集合中指定成员的索引

ZREM key member [member ...]

移除有序集合中的一个或多个成员

ZREMRANGEBYLEX key min max

移除有序集合中给定的字典区间的所有成员

ZREMRANGEBYRANK key start stop

移除有序集合中给定的排名区间的所有成员

ZREMRANGEBYSCORE key min max

移除有序集合中给定的分数区间的所有成员

ZREVRANGE key start stop [WITHSCORES]

返回有序集中指定区间内的成员,通过索引,分数从高到底

ZREVRANGEBYSCORE key max min [WITHSCORES]

返回有序集中指定分数区间内的成员,分数从高到低排序

ZREVRANK key member

返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

ZUNIONSTORE destination numkeys key [key ...]

计算给定的一个或多个有序集的并集,并存储在新的 key 中

ZSCAN key cursor [MATCH pattern] [COUNT count]

迭代有序集合中的元素(包括元素成员和元素分值)

Redis安装 配置服务器 启动客户端 数据操作 发布订阅 主从配置 卸载Redis

发布订阅

消息的格式

上一篇 下一篇

猜你喜欢

热点阅读