你知道的-------Redis数据库安装及基本命令

NoSql 是什么

非关系型数据库
基本上除了主流关系型数据库之外的数据库都是非关系型数据库,
可以直接面上对象
Redis 、MongoDB、Hbase、CouhDB等
关系型数据库:
1、结构化的数据库,创建关系模型的基础上
2、一遍都是面向记录
orale、 mysql 、SQL service、 DB2、Microsoft Access等

Nosql产生背景

三高

1、数据库高并发读写
2、海量数据下载的效率
3、高扩展和可用性(主要指的服务器的扩展)

cap定理【布罗尔定律】

c强一致性
a可用性
p分区容错性
网络分区:在网络分区的前提下,保证数据容错机制
在web2.0时代,CAP之间不能共存的,我们醉倒只能满足两个条件
CA可用性和强一直性 代表RDB【关系型数据库】
PA可用性和分区容错性,代表NoSql
CP前已执行和分区容错性,代表分布式数据链

BASE定理

1、基本可用:可用性有要求,单不是那么高
2、软状态<->强一致性 数据库不许要实时保存一直
3、最终一致性:

关注点

1、事务一直性
2、实时读写

NoSQL的优缺点

NoSql给我门带来哪些变化
缺点:
1不支持sql语句
2时间短还不是很完善
优点:
1扩展方便
2读写速度快
3、降低服务成本
4、数据类型灵活

Redis简介

开源的基于内存的远程字典的Nosql数据库,由C语言编写,基于运行内存并支持持久化 存储形式;Key-Value型

redis的特点

内存使用便是及其优异
数据读写速度高效
持久化性能好
扩展性和一直性好
目前分布式中不可或缺的一环
常见的应用场景:
缓存
去最新N个数据操作list
排行榜类的应用

redis的安装

需要先下载好配置文件然后直接放在root目录下面

tar zxvf redis-5.0.7.tar.gz
cd redis-5.0.7/
make
make PREFIX=/usr/local/redis install
ln -s /usr/local/redis/bin/* /usr/local/bin/
cd utils/
./install_server.sh	##一直回车就行
..... 省略部分内容
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server    ##配置文件路径可以改也可不改
Selected config:
Port           : 6379		##端口号
Config file    : /etc/redis/6379.conf	##配置文件路径
Log file       : /var/log/redis_6379.log  ##日志文件路径
Data dir       : /var/lib/redis/6379    ##数据文件路径
Executable     : /usr/local/bin/redis-server  ##可执行文件路径
Cli Executable : /usr/local/bin/redis-cli  ##客户端命令工具

netstat -lunpt |grep redis  ##过滤出端口
/etc/init.d/redis_6379 stop	##关
/etc/init.d/redis_6379 start	##开
/etc/init.d/redis_6379 restart	##重启
/etc/init.d/redis_6379 status	##查看

简单的优化

给主配置文件绑定下自己的IP地址

vim /etc/redis/6379.conf
...
bind 127.0.0.1 20.0.0.10

/etc/init.d/redis_6379 restart
redis-cli -h 127.0.0.1 -p 6379
下面命令是便于控制redis的操作
cd /etc/init.d/
cp redis_6379 redisd
service redisd stop
netstat -aunpt |grep redis
service redisd start
netstat -aunpt |grep redis	##能过滤出端口号

redis的基本命令

redis有五种存储的类型:string(字符串),hash(哈希)、list(列表)、set(集合)、及zset(sorted set:有序集合)

1、string是redis的基本类型,可以理解与Memcached一样的类型,一个key对应一个value

string类型是二进制安全的,redis的string可以包含任何数据,如jpg图片或者序列化的对象
string类型是Redis最基本的数据类型,string类型的最大能存512MB

2、redis hash是一个键值(key=>value)对集合

Redis hash是一个string类型的field和value的映射表,bash特别适合用于存储对象,每一个hash可以存储2的32次方-1键值对
//作用场景:
键值对集合,即编程语言中的Map类型,适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值。

redis-cli -h 20.0.0.10 -p 6379
第一种类型
set name zhangsan	##创建类name 输入数据zhangsan
get name		##查看数据
type name		##看name是什么类型的
keys *			##查看有哪些类
第二种hash类型
若输入的内容中有中文则是不能显示的,需要添加格式转换
20.0.0.10:6379> hmset stu name lisi age 18 sex 男	##输入
OK
20.0.0.10:6379> keys *	##看有哪些类
1) "name"
2) "stu"
20.0.0.10:6379> type stu	##看stu的类型
hash
20.0.0.10:6379> hget stu age	##显示年龄
"18"
20.0.0.10:6379> hget stu name
"lisi"
20.0.0.10:6379> hget stu sex	##显示性别  不能看
"\xe7\x94\xb7"
20.0.0.10:6379> quit
[root@localhost utils]# redis-cli -h 20.0.0.10 -p 6379 --raw	##加入格式转换
20.0.0.10:6379> hget stu sex	##能显示中文
3、Redis列表是简单的字符串列表,按照插入顺序排序,可以重复,可以添加一个元素到列表的头部(左边)或者尾部(右边),列表最多可存储2的32次方-1元素

//作用场景:
增删快,提供了操作某一段元素的API ##最新消息排行等功能(比如朋友圈的时间线)##消息队列

LPUSH hobby read play sport	##存储一个类名为兴趣还好里面三个数据
20.0.0.10:6379> lrange hobby 0 10	##取其中一到10 的数据
sport
play
read
20.0.0.10:6379> lrange hobby 0 0	##取第一数据最后入先取出
sport
20.0.0.10:6379> keys *
name
stu
hobby
20.0.0.10:6379> lrange hobby 1 2
play
read
20.0.0.10:6379> lrange hobby 2 3
read
20.0.0.10:6379> lpush hobby read	##可存入相同的数
4
20.0.0.10:6379> lrange hobby 0 10
read
sport
play
read
4、Set集合

Set是redis中string类型中的无序集合
集合是通过hash实现的,所以添加,删除查找的复杂度都是0和1
//作用场景
##公共好友##利用唯一性,统计访问网站的所有独立ip##好友推荐时根据tag求交集,大于某个阔值就可以推荐
sadd命令
添加一个string元素到key对应的set集合中,成功返回1,如果没有返回0

0.10:6379> type hobby
list
20.0.0.10:6379> sadd color red green yellow blue  ##创建color类
4
20.0.0.10:6379> keys *
name
color
stu
hobby
20.0.0.10:6379> smembers color ##查看color类中的数据
blue
red
green
yellow
20.0.0.10:6379> sadd color red	##存入red数据时无法存入返回为0
0
20.0.0.10:6379> smembers color
blue
red
green
yellow
5、zset(sorted set:有序集合)

Redis zset和set一样也是string类型的元素集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来来为集合的成员进行从小到大的排序
zset的成员是唯一的,但分数(score)却可以重复
//作用场景
将Set中的元素增加一个权重参数score,元素按score有序排列
数据插入集合时,已经进行天然排序##排行榜##带权重的消息队列
zadd命令添加元素到集合,元素在集合中存在则更新对应score

20.0.0.10:6379> del color	##删除color类
1
20.0.0.10:6379> keys *
name
stu
hobby
20.0.0.10:6379> zadd color 0 red	##中间一个数值
1
20.0.0.10:6379> zadd color 1 blue
1
20.0.0.10:6379> zadd color 2 green
1
20.0.0.10:6379> zadd color 3 yellow
1
20.0.0.10:6379> zrangebyscore color 0 10
red
blue
green
yellow
20.0.0.10:6379> zrangebyscore color 0 0
red
20.0.0.10:6379> zrangebyscore color 1 1 
blue
20.0.0.10:6379> zrangebyscore color 3 3
yellow
20.0.0.10:6379> zrangebyscore color 2 3
green
yellow
20.0.0.10:6379> zadd color 1.6 black	##插入数值在1和2之间会在他们中间排序
1
20.0.0.10:6379> zrangebyscore color 0 10
red
blue
black
green
yellow
多数据库概念

Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念。
Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,
客户端可以指定将数据存储在哪个字典中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库。
每个数据库对外都是一个从0开始的递增数字命名,Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),可以通过配置databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库,
不过可以随时使用SELECT命令更换数据库,如要选择1号数据库:

20.0.0.10:6379> select 1	##更换数据库
OK
20.0.0.10:6379[1]> select 2	##更换到第2数据库
OK
20.0.0.10:6379[2]> select 1	##更换到第1个库
OK
20.0.0.10:6379[1]> keys *	##什么都没有
20.0.0.10:6379[1]> select 0	##切换到第0个库
OK
20.0.0.10:6379> keys *		##查看都有哪些库
name
color
stu
hobby
20.0.0.10:6379> move stu 1	##数据库迁移 将stu的数据库迁移到1号库
1
20.0.0.10:6379> keys *
name
color
hobby
20.0.0.10:6379> select 1	##查看1号库
OK
20.0.0.10:6379[1]> keys *	##显示1号库的内容
stu
20.0.0.10:6379[1]> hget stu name	##被迁移的数据
lisi
20.0.0.10:6379[1]> hget stu age		##查看被迁移的数据
18
20.0.0.10:6379[1]> FLUSHALL		##清空所有的内容
OK
20.0.0.10:6379[1]> ksys *
(error) ERR unknown command `ksys`, with args beginning with: `*`, 
FLUSHALL && EXISTS

Redis不支持自定义数据库的名字,每个数据库都以编号命名,开发者必须自己记录哪些数据库存储了哪些数据。另外Redis也不支持为每个数据库设置不同的访问密码,所以一个客户端要么可以访问全部数据库,
要么连一个数据库也没有权限访问。最重要的一点是多个数据库之间并不是完全隔离的,
比如FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据。
宗上所述,这些数据库更像是一种命名空间,而不适宜存储不同应用程序的数据。作用场景:
可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但
不适宜使用0号数据库存储A应用的数据而使用1号数据库B应用的数据,不同的应用应该使用不同的Redis实例存储数据。由于Redis非常轻量级,一个空Redis实例占用的内存只有1M左右,所以不用担心多个Redis实例会额外占用很多内存。

redis-ali -h 20.0.0.10 -p 6379
20.0.0.10:6379> set name zhangsan	#输入一个库为name里面有个zhangsan数据
OK
20.0.0.10:6379> get name		##输出
"zhangsan"
20.0.0.10:6379> exists name		##查看返回值判断是否库中有数据
(integer) 1
20.0.0.10:6379> rename name names	##更改库的名字
OK
20.0.0.10:6379> EXISTS name		##查看是不是更改了
(integer) 0
20.0.0.10:6379> EXISTS names		##证明已经更改
(integer) 1
20.0.0.10:6379> keys *			##查看所有的库
1) "names"
20.0.0.10:6379> pttl names		##以毫秒为单位返回生存时间
(integer) -1				##-1代表没有设置
20.0.0.10:6379> pexpire names 3000	##设置生存时间为3秒
(integer) 1				##1代表有设置
20.0.0.10:6379> keys *			##可以看到3秒后names库已经没有了
(empty list or set)
20.0.0.10:6379> set name zhangsan
OK
20.0.0.10:6379> PTTL name		##查看有么有设置生命周期
(integer) -1
20.0.0.10:6379> pexpire name 50000	##设置生命周期为50秒
(integer) 1
20.0.0.10:6379> pttl name		##查看还剩多长时间消失(逐渐减少)
(integer) 43641
20.0.0.10:6379> pttl name
(integer) 41597
20.0.0.10:6379> pttl name
(integer) 40219
20.0.0.10:6379> pttl name
(integer) 38613
20.0.0.10:6379> pttl name
(integer) 37371
20.0.0.10:6379> persist name		##取消生命周期的设置
(integer) 1				##代表取消设置成功
20.0.0.10:6379> pttl name
(integer) -1
20.0.0.10:6379> keys *
1) "name"
20.0.0.10:6379> mset age 19 sex boy score 88	##同时建立了三个库
OK
20.0.0.10:6379> keys *
1) "score"
2) "sex"
3) "name"
4) "age"
20.0.0.10:6379> RANDOMKEY			##可以随机的显示库的名字
"age"
20.0.0.10:6379> RANDOMKEY
"sex"
20.0.0.10:6379> RANDOMKEY
"sex"
20.0.0.10:6379> RANDOMKEY
"age"
20.0.0.10:6379> RANDOMKEY
"score"
20.0.0.10:6379> RANDOMKEY
"name"
20.0.0.10:6379> RANDOMKEY
"sex"
20.0.0.10:6379> RANDOMKEY
"name"
20.0.0.10:6379> RANDOMKEY
"score"

关键词

orale
make PREFIX=/usr/local/redis install 执行安装命令
cd utils/ 进入系统工具目录
./install_server.sh 自动安装服务器启动程序
#daemonize:是否以后台daemon方式运行
#pidfile:pid文件位置
#port:监听的端口号
#timeout:请求超时时间
#loglevel:log信息级别
#logfile:log文件位置
#databases:开启数据库的数量
bind -----绑定
set------创建、设置
get------得到
type----类型
keys—秘钥关键帧,这就是显示库用的
hmse-----哈希的类型的创建
hget-----哈希类型的查看
lrange----列表的创建
smembers----集合中查看数据用的
sadd-------无序的创建
del-----删除
zadd------有序创建
zrangebyscore-----查看序号
select------进入序号
move-----转移
FLUSHALL------删全部
exists------存在、存活
rename------重命名
EXISTS-----设置生命周期
pttl--------查看周期
pexpire-------添加生命周期
persist--------取消生命周期
RANDOMKEY------取随机库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: another-redis-desktop-manager 是一个 Redis 数据库管理工具,版本号为 1.6.0。Redis 是一个内存数据库,常用于数据缓存、任务队列和排行榜等场景。该软件可以让用户更方便地管理 Redis 数据库。 another-redis-desktop-manager 具有直观的图形用户界面,使用户可以轻松地连接到 Redis 数据库并执行各操作。它提供了各功能,包括查看和编辑 Redis 数据的能力、执行命令查看服务器和客户端信息、监控 Redis 的性能指标等。 该软件支持密钥和值的搜索、过滤和排序,使用户可以更快地找到并操作所需的数据。另外,它还提供了多标签功能,允许用户在不同的 Redis 数据库之间轻松切换和管理。 除了基本的数据操作功能,another-redis-desktop-manager 还支持将 Redis 数据库导出为 JSON、CSV 和 SQL 文件,以便用户可以方便地备份和迁移数据。它还允许用户进行数据的导入,以满足不同的需求。 总之,another-redis-desktop-manager 是一个强大且易于使用的 Redis 数据库管理工具,它提供了丰富的功能和直观的界面,可帮助用户更高效地管理和操作 Redis 数据库。用户可以通过下载并安装该软件,轻松地管理他们的 Redis 数据。 ### 回答2: another-redis-desktop-manager是一个开源的跨平台Redis桌面管理工具,版本号为1.6.0。Redis是一个开源的高性能key-value数据库,广泛用于缓存、消息队列和持久化等场景。another-redis-desktop-manager提供了一个用户友好的图形界面,方便用户查看、管理和操作Redis数据库。 another-redis-desktop-manager的1.6.0版本带来了一些改进和升级。其中包括用户界面的改进,让用户更轻松地浏览和管理Redis数据库。此外,改进了性能和稳定性,提供了更快、更可靠的数据库操作体验。 该工具提供了一些功能,如连接到远程或本地Redis服务器,浏览和搜索键值对,执行常见的Redis操作(如添加、编辑和删除键),查看和分析数据库统计信息等。还可以支持多个Redis实例,并方便地在它们之间切换。 使用another-redis-desktop-manager可以大大简化Redis数据库管理的工作,无需使用命令行或编写复杂的脚本。它具有友好的用户界面和丰富的功能,适用于开发人员、运维人员和其他需要与Redis进行交互的用户。 总之,another-redis-desktop-manager是一个方便实用的Redis桌面管理工具,1.6.0版本带来了更好的性能和用户体验,适合用于管理和操作Redis数据库。 ### 回答3: another-redis-desktop-manager.1.6.0.exe是另一Redis桌面管理器的安装文件。Redis是一开源的高性能键值对存储数据库,用于快速处理数据,支持主从复制、持久化、集群等功能。Redis桌面管理器是一个可视化工具,用于管理和监控Redis数据库。 another-redis-desktop-manager.1.6.0.exe是该管理器的1.6.0版本的安装程序。通过安装该程序,用户可以在桌面环境中方便地管理Redis数据库,而无需手动使用Redis命令行工具。 该桌面管理器提供了直观的用户界面,使用户能够轻松执行常见的Redis操作,如查看和编辑键值对、执行命令、监视服务器状态、管理数据库等。它还提供了一个实时监控面板,用于显示Redis服务器的性能指标,如内存使用情况、并发连接数等,帮助用户更好地了解数据库的运行状况。 此外,该管理器支持多个Redis实例的管理,用户可以轻松切换和管理多个数据库。它还提供了一些高级功能,如备份和恢复数据、导入和导出数据、设置键的过期时间等。 总之,another-redis-desktop-manager.1.6.0.exe是一个方便易用的Redis桌面管理器,它提供了可视化的界面和丰富的功能,帮助用户更轻松地管理和监控Redis数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值