前言:
redis是一个key-value的存储系统,value支持string、list、set、zset、hash五种类型,且支持数据的本地存储
 
一、安装redis
前提:linux下需要安装了make、gcc、tcl 8.5。
 
下载地址:http://download.redis.io/releases/redis-3.0.6.tar.gz
进入要安装的位置,直接下载下来就,然后解压,进行编译即可。(我是在/opt下新建了一个目录redis,然后下载到这个目录里)
 
下载命令:wget http://download.redis.io/releases/redis-3.0.6.tar.gz
解压命令:tar -zxvf redis-3.0.6.tar.gz
 
具体命令如下:
cd /opt
mkdir redis
cd redis 
wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar -zxvf redis-3.0.6.tar.gz
cd redis-3.0.6
make
cd src
make install
 
如果遇到没有安装gcc或者tcl8.5的问题,可以参照下面两篇博客,注:我用的是Ubuntu系统
 
二、redis结构,配置redis
1.redis结构,redis的可执行文件有如下四个:
redis-server:redis服务器的daemon启动程序,默认在前台启动
redis-cli:redis命令行操作工具
redis-benchmark:redis性能测试工具
redis-stat:redis状态监测工具(这个我装的默认不带这个工具,需要自己去单独安装)
 
2.redis启动
2.1启动redis-server (默认daemonize为no ,会在前台执行,可更改redis.conf文件来修改配置)
./redis-server
2.2启动redis-cli,启动成功后可以进行命令行操作了
./redis-cli
 
说明:redis-server默认是在前台启动的,是根据配置文件redis.conf中的配置进行启动的,这是要启动redis-cli就需要再开一个终端进行操作,所以可以修改redis.conf的daemonize为yes
 
3.redis.conf配置文件
1.redis.conf文件位置
安装redis的目录下
2.redis.conf的主要配置项
  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
将daemonize参数改为yes,这样就可以在后台运行server,而不用再开一个终端去执行./redis-cli了
修改配置文件后的server启动命令:./redis-server ../redis.conf
说明:./redis-server(进入src目录,执行当前目录下的redis-server),然后使用上一目录下的redis.confi配置文件启动
也可以设置启动脚本去启动redis,这个可以自行去百度
 
三、redis.cli命令
启动redis-server后,才可以启动redis-cli
启动命令:redis-cli 
 
针对redis的命令:
(redis可以有多个数据库,每个数据库有索引编号,从0开始)
命令 意义
keys * 查看redis下所有的key(*可以是一个正则表达式)
exists key redis下是否存在key
type key 获得key的value的类型(string等)
del key 删除key
rename oldkey newkey 将oldkey更名为newkey(如果newkey存在,则先将newkey删除)
dbsize 返回redis下key的数量
select index 切换数据库(默认是0,如果切换1等后面会多一个【1】的标识)
move key index 将当前数据库下的key移动到索引为index的数据库下
flushdb 删除当前数据库中的所有key
flushall 删除所有数据库中的key
 
string类型的操作:
如果想删除string类型的,就直接删除key就可以了
操作 命令 例子 例子结果
增加或更改key,value set key value set key1 value1 key1的值是value1
获得key的值 get key get key1 value1
批量返回多个key的value mget key1 key2 同命令 获得key1和key2的值
批量给多个key复制 mset key1 value1 key2 value2 同命令 分别赋给key1、key2的value为value1、value2
给为数值的value+1 incr key key为1时,使用左侧命令
给为数值的value增加n(n为数字) incrby key n key为2时,incry key 2
给为数值的value-1 decr key key为2时,使用左侧命令
给为数值的value减去n(n为数字) decrby key n key为4时,decrby key 2
在string的value后追加内容 append key value key为abc时,append key de key的value变为abcde
获得value的子串 substr key start end key为1234567,substr key 1 3 获得key的子串234(子串索引从0开始计算)
 
list类型的操作:
(list的索引是从0开始计算的)list底层用的是链表
操作 命令 例子 例子结果
向list型的value尾部增加一个值 rpush key value1 value2 rpush key1 abc key1的尾部增加了一个子项“abc”
向list型的value头部增加一个值 lpush key value1 value2 lpush key1 123 key1的头部增加了一个子项“123”
查询list的长度 llen key key1有3个子项,llen key1
查询key的值 lrange key start end key有3个子项“123”,“abc”,“cde”
lrange key 0 -1
将全部子项都查询出来了,也可以用0 2的区间等查询部分结果
截取key的值,保留部分区间的值(索引) ltrim key start end ltrim key 0 1 只保留了key的0位和1位的值,截取了
获得某个索引位置的值 lindex key index lindex key 1 获得了索引为1位置的值
修改某索引位置的值 lset key index value lset key 1 abcdef 将索引为1位置的值替换成了“abcdef”
删除key下的某一个value lrem key count value lrem key 1 value 删除count个值为value的数据,如果count为0,则所有为value的数据都删除
删除list值中的首元素 lpop key 同命令 第一个元素被删除
删除list值中的尾元素 rpop key 同命令 最后一个元素被删除
删除key1中的尾元素,并插到key2中头部 rpoplpush key1 key2 同命令 key1的尾元素被删除,并添加到了key2的头元素位置
 
 
set类型的操作:
是一种集合,是无序的集合,没有先后顺序,可以进行交集、并集、差集等操作,set类型的元素不会出现重复元素,元素唯一。
操作 命令 例子 例子结果
增加或更改set的key,value sadd key value1 value2  sadd key1 1 2 3 key1的值是1,2,3(可以写多个值)
返回set的所有元素 smembers key 同命令 返回key为key的所有元素
查询set下是否存在某一个元素 sismember key member sismember key1 5 查询key1下是否有5(返回的是1和0,1表示存在)
删除set中的一个member srem key member srem key1 5 删除key1下为5的元素
随机删除set下的一个元素,并返回这个值 spop key 同命令 随机删除key下的一个元素
返回key下的元素个数 scard key 同命令 返回key为key的元素个数
从一个set下把某一元素移动到另一set下 smove key2 key3 member 同命令 将key2下的member移动到key3下
求多个set的交集 sinter key1 key2 同命令 显示key1和key2下的交集
将多个set的交集存储到一个set下 sinterstore key3 key1 key2 同命令 求key1和key2的交集并存储到key3下
求多个set的并集 sunion key1 key2 同命令 显示key1和key2的并集
将多个set的并集存储到一个set下 sunionstore key3 key1 key2 同命令 求key1和key2的并集并存储到key3下
求多个set的差集 sdiff key1 key2 同命令 显示key1和key2的差集
求多个set的差集存储到一个set下 sdiffstore key3 key1 key2 同命令 求key1和key2的差集并存储到key3下
随机返回set下的一个元素 srandmember key 同命令 随机返回key下的一个元素
 
zset类型的操作:
有序集合,每个元素都关联一个序号,元素去重。zset的命令都是以z开头的。zset的value由score(序号)和值两部分组成
操作 命令 例子 例子结果
增加zset的key和value zadd key score member zadd key 1 abc 增加key下的序号为1的值为abc
返回zset下某一member的index
(元素按score从小到大排序)
zrank key member zrank key abc 返回元素名为abc的索引(索引是从0开始计算的,所以比自己加的score少1)
返回zset下某一member的index
(元素按score从大到小排序)
zrevrank key member zrevrank key abc 返回元素名为abc的索引(索引是从0开始计算的,所以比自己加的score少1)
返回zset下某一区间的值
(元素按score从小到大排序0
zrange key start end zset key 0 -1 返回zset下区间start到end的值(0 -1是全部)
元素从小到大排序
返回zset下某一区间的值
(元素按score从小到大排序)
zrevrange key start end zset key 0 -1 返回zset下区间start到end的值(0 -1是全部)
元素从小到大排序
删除zset下的某一个member zrem key member 同命令 删除key下的member
返回zset某一元素的score zscore key member 同命令 返回key下元素member的score
返回zset某一score区间的元素 zrangebyscore key start end zrangebyscore key 1 4 返回key下的score为1到4的元素
删除zset某一score区间的元素 zremrangebyscore key start end zremrangebyscore key 1 2 删除key下score区间为1到2的元素
 
zset还支持并集、交集、差集的计算,会根据最后的aggregate来决定score是sum还是min或max
 
hash类型的操作
hash就是哈希,可以理解为map,一个key对value的类型。hash类型的数据组成key:{field:value}
hash的命令都是以h开头的,后面跟着redis的key,再后面的参数与string类型的操作类似,可以将hash的field想象成string的key。
操作 命令 例子 例子结果
hash插入数据 hset key field value hset key1 age 20 在key1下增加了一个age:20的hash值
获得hash中某一个field对应的value值 hget key field hget key age 获得key下的age的值
批量获得hash的多个field对应的值 hmget key field1 field2  hmget key name age 批量获得key下的name和age的值
hash批量插入数据 hmset key field1 value1 field2 value2 hmset key name tom age 20 批量插入key的value,name:tom age:20
查看hash的某一个key下是否存在field hexists key field hexists key name 查看key下是否存在field叫做name的项
返回hash的元素个数 hlen key 同命令 返回key的元素个数
根据field,删除hash的某一个元素 hdel key field 同命令 删除key下键为field的元素
显示hash中所有的键及对应的值 hgetall key 同命令 显示key下所有的键及对应的值(但是是分行显示的)
返回hash的所有元素的键 hkeys key 同命令 返回key下的所有元素的键(field)
显示hash中所有键对应的值 hvals key 同命令 返回key下的所有键对应的值,不包含键
将hash下某一键的值增加一定数值 hincrby key field integer hincrby key field 10 将key的field的值增加10(如果值是数值会直接加10;
如果不是数值,该键的值会直接变为100
 
 
其他:redis还有很多其他的命令,如果有需要可以再去百度一下。redis还支持持久化的本地存储,和主从的搭建等。这些以后我有时间了会再补充一下。这篇就先暂时写到这里了

redis安装和命令使用的更多相关文章

  1. Redis安装、命令以及设置密码遇到的问题

    一.下载Redis 如果没有 安装wget先安装wget和gcc(使用make的时候会用上) wget http://download.redis.io/releases/redis-4.0.8.ta ...

  2. 分布式系列十: Redis安装和命令

    redis是一个开源的, 内存数据结构存储, 一般用来作为数据库,缓存和消息代理. Redis的优势 多种数据结构 字符类型String 散列类型Hash 列表类型List 集合类型Set 有序集合类 ...

  3. VMWare12安装CentOS7以及redis安装和常用命令

    一.vmware安装centos7后没有网卡 VMWare 12版本不提供32位安装程序,只有64位安装程序,如果在安装CentOS时,选择的是CentOS而不是CentOS 64位,则会出现Cent ...

  4. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作

    redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis与其他key-value缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存 ...

  5. Redis的安装及命令返回值

    Linux下安装Reids : http://redis.io/download 下载最新稳定版本 wget http://download.redis.io/releases/redis-3.0.7 ...

  6. redis安装及简单命令

    Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统 ...

  7. 操作系统篇之Linux命令操作和redis安装以及基本使用

    电脑操作系统 : windows7,8,10,xp,win98 操作系统 : linux ax unix 以后开发项目是部署在服务器上,服务器一般采用linux. linux的优点:系统稳定,操作速度 ...

  8. #redis 安装命令

    redis 安装命令 cd /usr/local sudo wget http://download.redis.io/releases/redis-4.0.11.tar.gz sudo tar xf ...

  9. Linux下安装redis以及常用命令

    https://blog.csdn.net/zgf19930504/article/details/51850594 安装: 1.获取redis资源 wget http://download.redi ...

随机推荐

  1. python学习笔记--装饰器

    1.首先是一个很无聊的函数,实现了两个数的加法运算: def f(x,y): print x+y f(2,3) 输出结果也ok 5 2.可是这时候我们感觉输出结果太单一了点,想让代码的输出多一点看起来 ...

  2. php7 数据库操作的 方法

    连接数据库的方法PHP7.0以上的: 方法一: <?php/* Connect to a MySQL server 连接数据库服务器 */$link = mysqli_connect('loca ...

  3. charles只获取指定的请求的设置方法

    过滤网络请求 通常情况下,需要对网络请求进行过滤,只监控指定服务器的请求.有3种办法: 方法一:在主界面的中部的 Filter 栏中输入需要过滤出来的关键字.例如我们的服务器的地址(host)是:ww ...

  4. Logstash之一:入门介绍

    简介 Logstash是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型.怎么样听起来挺厉害的吧?在一个典型的使用场景下(EL ...

  5. ASP.NET Web Pages:目录

    ylbtech-.Net-ASP.NET Web Pages:目录 1. 官网返回顶部 1. https://www.asp.net/web-pages 2. https://msdn.microso ...

  6. 1108 Finding Average (20 分)

    1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...

  7. jquery的相关应用

    1.jQuery获取鼠标事件源(万能) 1 //任意位置 2 3 $(document).ready(function(){ 4 5 $(document).click(function(){ 6 $ ...

  8. javascript callee和caller

    arguments的主要用途是保存参数,但是他还有callee属性. 一:callee指向arguments对象的函数. 示例一: function calture(num) {//阶乘计算 if ( ...

  9. final修饰的类有什么特点

    变量定义为final,一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变. 方法定义为final,是为了防止任何继承类改变它. 类定义为final, ...

  10. RabbitMQ-从基础到实战(4)— 消息的交换(中)

    转自:https://www.cnblogs.com/4----/p/6590459.html 1.简介 本章节和官方教程相似度较高,英文好的可以移步官方教程 在上一章的例子中,我们创建了一个消费者, ...