您当前的位置: 首页 >  redis
  • 0浏览

    0关注

    214博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Redis(一):redis的安装+redis和memcached比较+redis目录

不愿透露姓名の网友 发布时间:2019-11-08 21:52:31 ,浏览量:0

文章目录
  • 一、什么是Redis?
  • 二、Redis的安装配置
  • 三、Redis的数据类型
  • 四、Redis的基础命令
  • 五、数据类型的常见操作命令
    • ① [string-字符串]的操作命令
    • ② [hash-哈希对象]的操作命令
    • ③ [list-链表]的操作命令
    • ④ [set-集合]的操作命令
    • ⑤ [zset-有序集合]的操作命令
  • 六、Redis的事务

一、什么是Redis?
  • redis的官网地址:redis.io
  • redis是一个高性能的key-value存储系统数据库。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型支持丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步
  • Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

总结一下Redis的特点:

  • 读写速度快,数据存放在内存中。
  • 丰富的数据类型:字符串,哈希,链表、集合、有序集合
  • 支持事务watch
  • 可以用作缓存和消息队列,按key设置过期时间,超时自动删除
  • 数据持久化,支持AOF日志和RDB快照两种持久化方式,防止数据丢失
  • 支持主从复制来实现数据备份,主机数据会同步到从机
二、Redis的安装配置

接下来我们先在本地安装redis,下载地址:

https://download.csdn.net/download/qq_40558166/11965269

1.解压文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w019Gx0j-1573140533813)(../AppData/Roaming/Typora/typora-user-images/1573105282175.png)]

2.配置环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zIlVSwvd-1573140533815)(../AppData/Roaming/Typora/typora-user-images/1573105295141.png)]

3.变成服务,进入安装目录下,地址栏cmd,然后输入命令

redis-server --service-install redis.windows.conf --loglevel verbose --maxheap 200m

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SFPWLJ4E-1573140533815)(../AppData/Roaming/Typora/typora-user-images/1573105332893.png)]

4.启动服务在这里插入图片描述

5.启动客户端和服务端命令

打开cmd,启动redis-server:服务器命令

redis-server redis.windows.conf	

再打开cmd。启动redis-cli :客户端命令

redis-cli

注意:一个redis。windows.conf配置就是一个redis服务器,需要启动多个服务器时,只需要修改一下这个配置文件的名称redis.windows.conf,再用redis-server就可以启动

三、Redis的数据类型

redis是一个高性能的key-value存储系统数据库。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型)

类型特点使用场景string字符串key=value的形式,可存数字定时持久化,常规计数hash映射表string类型的key=value的映射表,适合存储对象存储部分变更数据,比如用户信息表list链表有序可重复的链表set集合无序不可重复的序列常用交并差集,比如可以求共同关注的博主zset有序集合带score排名的无序不可重复序列排行榜 四、Redis的基础命令 命令作用keys *返回键(key)keys list*返回名以list开头的所有键(key)exists list1判断键名为list1的是否存在 存在返回1, 不存在返回0del list1删除一个键(名为list1)expire list1 10设置键名为list1的过期时间为10秒后ttl list1查看键名为list1的过期时间,若为-1表示已过期 或 永不过期move age 1将键名age的转移到1数据库中select 1/表示进入到1数据库中,默认在0数据库persist age移除age的过期时间。flushdb删除所有的数据 清除当前所在库的所有数据flushall清空所有数据 五、数据类型的常见操作命令 ① [string-字符串]的操作命令 命令解释set age 1添加键值age=1,存在则替换get age获取agesetnx age 2添加不存在的age=2setex age 5 3添加有效期为5s的age=3mset age 1 age2 1添加多个age=1,age2=3msetnx age 1 age2 3添加多个不存在的age=1,age2=3getset age 3获取age以前的值,并设置为新值age=3mget name age获取多个值name,agesetrange name 5 hello设置name索引从5以后的值,类似name[5:]=‘hello’getrange name 0 5获取name[0:5]append name asasa在name后边追加asasadecr age对age-1incr age对age+1decyby age 10对age-10incrby age 8对age+8strlen name求age的长度del name删除nametype name返回name的数据类型 ② [hash-哈希对象]的操作命令 命令解释hset user:001 name zs在user:001表中添加name=zs,有就替换hget user:001 name获取user:001表中的namehsetnx user:001 age 5在user:001表中设置不存在的age=5hmset user:001 age 3 age2 5在user:001表中添加age=3和age2=5hmget user:001 age age2在user:001表中获取age和age2hdel user:001 age删除user:001表中的agehincrby user:001 age 5在user:001表中对age+5hdecrby user:001 age 3在user:001表中对age—3hkeys user:001展示user:001表中的所有keyhvals user:001展示user:001表中的所有valuehexists user:001 name判断user:001表中中是否存在namehlen user:001 age求user:001表中的长度 ③ [list-链表]的操作命令 命令解释lpush list 1在list的头部添加元素1rpush list 1在list的尾部添加元素1lpop list 1在list的头部弹出元素rpop list 1在list的尾部弹出元素rpoplpush list 1 list2弹出list尾部的元素添加到list2的头部lrange list 0 -1展示出list[0:-1],也就是所有元素lindex list 0展示出list[0]ltrim list 0 2删除其他元素,只剩下list[0:2]lset list 0 5list[0]=5linsert list before a b在list元素a的前边添加b元素llen listlist的长度lrem list 0 a删除list中全部的a元素lrem list 5 a从头开始搜索,删除list中5个a元素lrem list -2 a从尾部开始搜索,删除list中 ④ [set-集合]的操作命令 命令解释sadd set 1在set集合添加1srem set 1删除set中的1成员spop set随机弹出一个成员smember set展示set中的所有成员smove set1 set2 5将set1集合中的5成员,移动到set2中srandmember set随机展示set中的一个成员sismember set 5判断5是不是set集合中的成员scard setset集合中的成员个数sdiff set1 set2差集,展示出set1-set2的差别成员sdiffstore set set1 set2将set1-set2的差别成员存到set3sinter set1 set2交集,展示出set1和set2的交集成员sinterstore set set1 set2将set1,set2的交集成员存到set3sunion set1 set2并集,展示出set1和set2的并集成员sunionstore set set1 set2将set1,set2的并集成员存到set3 ⑤ [zset-有序集合]的操作命令 命令解释zadd zset 1 a在zset成员中添加分数为1的成员azrange zset 0 -1展示按分数从低到高排序后的zset[0:-1]的成员zrange zset 0 -1 withscores展示按分数从低到高排序后的zset[0:-1]的成员,包括排名zrevrange zset 0 -1展示按分数从高到低排序后的zset[0:-1]的成员zrevrange zset 0 -1 withscores展示按分数从高到低排序后的zset[0:-1]的成员,包括排名zrangebyscore zset 4 5 withscores获取zset中分数[4:5]的成员,包括排名zcount zset1 3 4获取zset中分数[3:4]的成员数量zrevrank zset a展示按分数从高到低的zset的a成员的索引zrem zset a删除zset的a成员zincrby zset 3 a对zset中的a成员的排名+3zcard zsetzset的成员个数zremrangebyrank zset1 1 2删除zset索引在[1:2]之间的成员zremrangebyscore zset1 3 4删除zset分数在[3:4]之间的成员 六、Redis的事务

数据库事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。

Redis支持简单的事务,下面我们来看一下Redis与 mysql事务的对比: 在这里插入图片描述

问题1:rollback与discard 的区别 : 如果已经成功执行了2条语句,第3条语句出错.Rollback后,前2条的语句影响消失.Discard只是结束本次事务,前2条语句造成的影响仍然还在。

问题2:在mutil后面的语句中, 语句出错可能有2种情况:

  1. 语法就有问题,这种,exec时,报错, 所有语句得不到执行
  2. 语法本身没错,但适用对象有问题. 比如 zadd 操作list对象,Exec之后,会执行正确的语句,并跳过有不适当的语句。
关注
打赏
1657102503
查看更多评论
立即登录/注册

微信扫码登录

0.7782s