今天和大家说下Redis,那什么是redis呢?
Redis介绍
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
Redis特点
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis的具体优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储对比
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。
- 在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis安装
还是在Linux系统下安装
1、下载安装包
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
2、解压压缩包
tar -zxf redis-4.0.6.tar.gz
3、移动到soft目录
mv redis-4.0.6 /opt/soft/redis406
4、安装gcc依赖
yum install gcc -y
5、跳转到redis解压目录下
cd /opt/soft/redis406
6、编译安装
make MALLOC=libc
7、进入redis-4.0.6/src目录
make install
开始启动redis
方法一:
直接启动redis ,在src目录下
./redis-server
重启窗口进入数据库
cd /opt/soft/redis406/src
ls *-cli
./redis-cli -h 192.168.5.150 -p 6379
注意:
当进入数据库,创建键值对的时,这个时候会报一个错误,提示新建键值对出现错误需要绑定
解决方案:
cd /opt/soft/redis406
vi redis.conf
#找到bind 开头的一段IP地址,改成自己的ip
bind 192.168.5.150
然后重新启动reids,在conf目录下
cd /opt/soft/redis406/src
./redis-server ../redis.conf
这个时候就可以正常创建键值对了。
方法二:
以后台进程方式启动redis:
第一步:修改redis.conf文件
将
daemonize no
修改为
daemonize yes
第二步:指定redis.conf文件启动
./redis-server /opt/soft/redis406/redis.conf
第三步:关闭redis进程
首先使用ps -aux | grep redis查看redis进程
使用kill命令杀死进程
kill 进程
方法三:
设置redis开机自启动,可以不用设置
第一步:在/etc目录下新建redis目录
mkdir redis
第二步:将redis406/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
cp /opt/soft/redis406/redis.conf /etc/redis/6379.conf
第三步:将redis的启动脚本复制一份放到/etc/init.d目录下
cp /opt/soft/redis406/utils/redis_init_script /etc/init.d/redisd
第四步:设置redis开机自启动
先切换到/etc/init.d目录下
然后执行自启命令
chkconfig redisd on
会报一个错,是redisd不支持chkconfig
解决方案:
使用vim编辑redisd文件,在第一行加入两行注释,并保存退出
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
解析:
redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
再次执行开机自启命令
chkconfig redisd on
这时就能执行成功!
现在可以直接以服务的形式启动和关闭redis了!
启动:
service redisd start
关闭:
service redisd stop
#或者
redis-cli SHUTDOWN
当出现有个虚线的方格子时,说明redis启动成功!
我们按照方法一的步骤来进入redis数据库:
./redis-cli -h 192.168.5.150 -p 6379
redis基本操作
设置键值对:
set zp "hello"
通过键获取值:
get zp
删除键
del zp
Redis的keys 命令
-
DEL key
该命令用于在 key 存在时删除 key。 -
DUMP key
序列化给定 key ,并返回被序列化的值。 -
EXISTS key
检查给定 key 是否存在。 -
EXPIRE key seconds
为给定 key 设置过期时间,以秒计。 -
EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。
不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。 -
PEXPIRE key milliseconds
设置 key 的过期时间以毫秒计 -
PEXPIREAT key milliseconds-timestamp
设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 -
KEYS pattern
查找所有符合给定模式( pattern)的 key 。 -
MOVE key db
将当前数据库的 key 移动到给定的数据库 db 当中。 -
PERSIST key
移除 key 的过期时间,key 将持久保持。 -
PTTL key
以毫秒为单位返回 key 的剩余的过期时间。 -
TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 -
RANDOMKEY
从当前数据库中随机返回一个 key 。 -
RENAME key newkey
修改 key 的名称 -
RENAMENX key newkey
仅当 newkey 不存在时,将 key 改名为 newkey 。 -
SCAN cursor [MATCH pattern] [COUNT count]
迭代数据库中的数据库键。 -
TYPE key
返回 key 所储存的值的类型。
Redis的基本命令及使用就介绍到这里,后面还会整理出更多redis的相关内容,尽请期待!