Redis简介

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 --摘自360百科

简而言之redis是属于非关系型数据库,存储结构是:key-value,内存-磁盘的存储方式。

Redis的应用场景

1.数据缓存

2.session共享(会话保持)

3.作为计数器

4.消息队列

5.最新列表

Redis的持久化

redis持久化会在磁盘上依赖两个文件

数据文件:rdb

日志文件:aof

redis实现持久化两种机制

RDB:周期的将内存中的数据备份到磁盘

AOF:借助于一个日志文件,这个文件会记录每次操作

Redis中的数据类型

字符类型

列表类型

有序集合类型

无序集合类型

哈希表类型

这部分内容大家也可以参考网站 http://redisdoc.com/

Redis的安装

直接使用yum即可进行安装

[root@ken ~]# yum install redis -y

使用yum安装的redis版本是3.2的

[root@ken ~]# rpm -q redis
redis-3.2.-.el7.x86_64

如果你想下载安装最新版本或者更高的版本可以在redis官网站https://redis.io进行下载

Redis命令使用

首先启动redis。redis监听的是本机的6379端口,可以在配置文件中进行修改

[root@ken ~]# systemctl restart redis
[root@ken ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN 127.0.0.1: *:*
LISTEN *: *:*
LISTEN *: *:*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*

登录redis使用命令redis-cli

[root@ken ~]# redis-cli
127.0.0.1:>

在上面已经介绍了几种redis的数据类型,下面一一进行示范演示

字符类型

常用操作

1. set key value     #将字符串值 value 关联到 key

127.0.0.1:> set age
OK

2. get key             #返回 key 所关联的字符串值。

127.0.0.1:> get age
""

3. APPEND key value    #将 value 追加到 key 原来的值的末尾

127.0.0.1:> append age ken
(integer)
127.0.0.1:> get age
"10ken"

4. MSET key value [key value ...]    #同时设置一个或多个 key-value 对

127.0.0.1:> mset addr jiangsu tel  gender male
OK

5. MGET key [key ...]   #返回所有(一个或多个)给定 key 的值

127.0.0.1:> mset addr jiangsu tel  gender male
OK
127.0.0.1:> MGET addr tel gender
) "jiangsu"
) ""
) "male"

6. INCR key  #将 key 中储存的数字值增一

127.0.0.1:> set num
OK
127.0.0.1:> INCR num
(integer)
127.0.0.1:> INCR num
(integer)
127.0.0.1:> INCR num
(integer)
127.0.0.1:> INCR num
(integer)
127.0.0.1:> get num
""

7. DECR key   #将 key 中储存的数字值减一

127.0.0.1:> DECR num
(integer)
127.0.0.1:> DECR num
(integer)
127.0.0.1:> DECR num
(integer)
127.0.0.1:> get num
""

8. STRLEN key  #返回 key 所储存的字符串值的长度

127.0.0.1:> STRLEN tel
(integer)
127.0.0.1:> get tel
""
127.0.0.1:> STRLEN num
(integer)
127.0.0.1:> get num
""

9. DEL key [key ...]  #删除给定的一个或多个 key

127.0.0.1:> DEL age num
(integer)
127.0.0.1:> keys *
) "gender"
) "addr"
) "name"
) "tel"

哈希表类型

常用操作

1.HSET key field value  #将哈希表 key 中的域 field 的值设为 value

127.0.0.1:> hset myha ken
(integer)

2.HGET key field返回哈希表 key 中给定域 field 的值

127.0.0.1:> hset myha ken
(integer)
127.0.0.1:> HGET myha ken
""

3. HGETALL key  #返回哈希表 key 中,所有的域和值

127.0.0.1:> HGETALL myha
) "ken"
) ""

列表类型

常用操作

1.LPUSH key value [value ...]  #将一个或多个值 value 插入到列表 key 的表头

127.0.0.1:> lpush ken
(integer)

2.RPUSH key value [value ...] #将一个或多个值 value 插入到列表 key 的表尾(最右边)

127.0.0.1:> RPUSH ken
(integer)

3.LRANGE key start stop  #返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定

127.0.0.1:> LRANGE ken
) ""
) ""
) ""
) ""
) ""
) ""
) ""

4. RPOP key  #移除并返回列表 key 的尾元素

127.0.0.1:> RPOP ken
""
127.0.0.1:> LRANGE ken
) ""
) ""
) ""
) ""
) ""
) ""
127.0.0.1:> RPOP ken
""
127.0.0.1:> LRANGE ken
) ""
) ""
) ""
) ""
) ""

5. LLEN key #返回列表 key 的长度

127.0.0.1:> LLEN ken
(integer)

6. LREM key count value  #根据参数 count 的值,移除列表中与参数 value 相等的元素

127.0.0.1:> LREM ken
(integer)
127.0.0.1:> LRANGE ken
) ""
) ""
) ""
) ""
127.0.0.1:> LREM ken
(integer)
127.0.0.1:> LRANGE ken
) ""
) ""
) ""

无序集合

常用操作

1.SADD key member [member ...]  #将一个或多个 member 元素加入到集合 key 当中

127.0.0.1:> SADD kenken
(integer)

2.SMEMBERS key  #返回集合 key 中的所有成员

127.0.0.1:> SMEMBERS kenken
) ""
) ""
) ""

3.SCARD key #返回集合 key 的基数(集合中元素的数量)

127.0.0.1:> SCARD kenken
(integer)

4.SREM key member [member ...]  #移除集合 key 中的一个或多个 member 元素

127.0.0.1:> SREM kenken
(integer)
127.0.0.1:> SMEMBERS kenken
) ""
) ""

有序集合

常用操作

1. ZADD key score member [[score member] [score member] ...]  #将一个或多个 member 元素及其 score 值加入到有序集 key 当中

127.0.0.1:> ZADD ke  baidu
(integer)

2.ZRANGE key start stop [WITHSCORES] #返回有序集 key 中,指定区间内的成员

127.0.0.1:> ZRANGE ke
) "baidu"

3.ZREM key member [member ...] #移除有序集 key 中的一个或多个成员

127.0.0.1:> ZREM ke baidu
(integer)
127.0.0.1:> ZRANGE ke -
(empty list or set)

Redis基础认识及常用命令使用(一)--技术流ken的更多相关文章

  1. Redis基础认识及常用命令使用(一)--转载

    Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 ...

  2. Redis基础认识及常用命令使用

    Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 ...

  3. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  4. Redis Cluster集群架构实现(四)--技术流ken

    Redis集群简介 通过前面三篇博客的介绍<Redis基础认识及常用命令使用(一)--技术流ken>,<Redis基础知识补充及持久化.备份介绍(二)--技术流ken>,< ...

  5. 解析Redis操作五大数据类型常用命令

    摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...

  6. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  7. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  8. redis学习-集合set常用命令

    redis学习-集合set常用命令   1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...

  9. redis学习-散列表常用命令(hash)

    redis学习-散列表常用命令(hash)   hset,hmset:给指定散列表插入一个或者多个键值对 hget,hmget:获取指定散列表一个或者多个键值对的值 hgetall:获取所欲哦键值以及 ...

随机推荐

  1. web页面font-family显示

    font-family属性很简单,直接写在css或style样式中即可. 如: font-family: "Microsoft YaHei"; 但是如果希望电脑能正确的显示我们设置 ...

  2. Linux下Oracle数据库的安装

    记录详细过程以备使用 一.准备安装 为了确保Oracle数据库11g能够成功安装,您需要做好准备工作,例如检查网络配置.更改Linux内核参数.创建用户Oracle.创建安装目录.设置用户Oracle ...

  3. 快速制作U盘启动盘和U盘安装盘的方法

    制作U盘启动盘的方法: 1. 安装UltraISO; 2. 安装完成后,用管理员权限打开UltraISO; 3. 打开启动盘文件,一般为ISO文件: 4. 插入U盘: 5. 选择 启动 -> 写 ...

  4. WEB站点服务器安全配置

    WEB站点服务器安全配置   本文转自:i春秋社区   // 概述 // 熟悉网站程序 // 更改默认设置的必要性 // 目录分析与权限设置技巧 // 防止攻击其他要素 // 公司官网不可忽视的安全性 ...

  5. HBase体系架构和集群安装

    大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...

  6. C++ Opencv HoughLines()用霍夫变换在二元图像中寻线

    一.霍夫变换简介 参考http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm 二.HoughLines()函数详解 该函数接受的输入矩阵只能是8位单通道的二 ...

  7. Redis数据结构以及应用场景

    1. Redis数据结构以及应用场景 1.1. Memcache VS Redis 1.1.1. 选Memcache理由 系统业务以KV的缓存为主,数据量.并发业务量大,memcache较为合适 me ...

  8. SpringBoot+logback实现日志打印

    logback介绍 logback是一款开源的日志框架,内核重写了,是基于log4j基础进行改良的.其官网为logback.qos.ch.logback在性能上有很大提升,拥有更多特性. logbac ...

  9. mac中:不能完成此操作,因为找不到一个或多个需要的项目。(错误代码 -43)

    今天使用mac删除某文件时,遇到此错误: 不能完成此操作,因为找不到一个或多个需要的项目.(错误代码 -43) 于是采用命令行删除可以正确删除:在要删除的文件夹坐在目录下执行   rm -rf tes ...

  10. 解决使用display:inline-block时元素间隔问题

    在写个人博客页时出现了一个百思不得其解的问题,不知道为什么出现以下情况: 可以看到,下面的a标签中出现了一个间隔,怎么都去不掉,查阅资料后发现,问题原因如下: 1.第一种解决办法,去掉HTML元素中的 ...