济南最好的网站建设公司,做的好的营销型网站有哪些,灰色行业推广引流,小程序是什么时候出来的目录
一、Redis下载与安装
二、基本概念
1.什么是Redis?
2.Redis端口多少#xff1f;
3.Redis是单线程还是多线程#xff1f;
4.Redis为什么单线程还这么快#xff1f;
三、Redis的基本操作
四、Redis的五个基本类型
1.Redis-key
2.字符串 string
3.列表 list …
目录
一、Redis下载与安装
二、基本概念
1.什么是Redis?
2.Redis端口多少
3.Redis是单线程还是多线程
4.Redis为什么单线程还这么快
三、Redis的基本操作
四、Redis的五个基本类型
1.Redis-key
2.字符串 string
3.列表 list
4.集合 set
5.哈希
6.有序集合 zset 前言 本文只是对redis的入门学习如需更为详细和系统的学习请访问以下两个链接的参考资料 1.百度网盘分享链接 链接https://pan.baidu.com/s/11k14fqNSj2N_YrUUXkEDIw?pwd1j8i 提取码1j8i 2.参考资料网址Redis 数据类型 | 菜鸟教程 (runoob.com) 一、Redis下载与安装
官网下载安装包雷迪斯 (redis.io)将安装包传到Linux系统将安装包拷贝到 /opt解压安装包进入解压后的目录执行make命令执行make install命令切换到/usr/local/bin目录下拷贝Redis的配置文件(redis.conf)到当前目录下修改配置文件启动Redis的服务器 执行命令 ./redis-server redis.conf启动Redis的客户端 执行命令 ./redis-cli -p 6379测试是否连接上Redis的服务器 执行命令 ping
二、基本概念
1.什么是Redis? Redis 是一个开源BSD许可的内存中的数据结构存储系统它可以用作数据库、缓存和消息中间件 。 它支持多种类型的数据结构如字符串strings 散列hashes 列表lists 集 合sets 有序集合sorted sets 与范围查询 bitmaps hyperloglogs 和 地理空间 geospatial 索引半径查询。 Redis 内置了 复制replicationLUA脚本Lua scripting LRU驱动事件LRU eviction事务transactions 和不同级别的 磁盘持久化 persistence-- RDB和AOF 并通过 Redis哨兵Sentinel和自动 分区Cluster提供高 可用性high availability 2.Redis端口多少 6379
3.Redis是单线程还是多线程 单线程。 Redis是很快的官方表示Redis是基于内存操作的CPU不是Redis的性能瓶颈Redis的瓶颈就是 根据机器的内存和网络带宽。既然可以使用单线程来实现就使用单线程了 Redis是C语言实现的官方数据读110000/s 写 80000/s完全不比同样使用key-value的 Memcached差
4.Redis为什么单线程还这么快 误区1 高性能的服务器一定是多线程的 误区2 多线程CPU上下文切换一定比单线程效率高 核心 Redis是将所有的数据全部放在内存中的所以说使用单线程去操作效率就是最高的相比多线程减少了CPU上下文切换的耗时。对于内存系统来说没有上下文切换效率就是最高的多次读写都是在一个CPU上的。 三、Redis的基本操作 Redis默认有16个数据库默认使用的是第0个数据库可以通过select切换数据库。 Redis的命令对大小写不敏感 select 切换数据库格式 select index查看数据的大小 格式 dbsize查看所有的key格式 keys *清空当前数据库和清空所有的数据库:flushdb flushall四、Redis的五个基本类型
1.Redis-key
#########################################################
# SET 设置key
# GET 查看key的值
# EXPIRE 设置key的过期时间
# TTL 查看key剩余的时间
# EXISTS 判断当前的key是否存在
# KEYS * 查看当前所有的key
# DEL key 删除当前的key
# TYPE 查看key存储的value的类型
2.字符串 string
set get
设置值和获取值 格式 set key value get key判断key是否存在格式 exists key追加字符串如果key不存在相当于set命令格式 append key value获取字符串的长度格式 strlen key对value进行自增1和自减1操作格式 incr key decr key设置加减的步长格式 incrby key num decrby key num获取给定范围的字符串值格式 getrange key start stop从指定位置开始替换字符串的值格式 setrange key offset value设置过期时间查看剩余时间格式 setex key seconds value ttl key如果key不存在则设置负责失败格式 setnx key value同时设置或者获取多个值格式 mset key1 value1 key2 value2 ... mget key1 key2..msetnx是一个原子操作要么一起成功要么一起失败用string存储对象时key值的设计
小结 ——String类似的使用场景
value除了是字符串也可以是数字计数器统计多单位的数量 对象缓存存储3.列表 list 在Redis中我们可以把list完成栈、队列、阻塞队列 所有的list命令都是用l开头的
从list的左边或者右边插入值格式 lpush key value rpush key value lrange获取指定范围的值格式 lrange key start stop从列表的左边或者右边移除值格式 lpop key rpop key获取指定下标的值格式 lindex key index获取列表中的元素个数格式 llen key移除列表中的元素格式 lrem key count value截取列表的值格式 ltrim key start stop移除列表中最后一个元素将它添加到另一个列表中格式 rpoplpush key1 key2根据下标替换列表中的值格式 lset key index value在列表中插入值格式 linsert key before|after value new_value
小结
他实际上是一个链表before or after leftright都可以插入值如果key不存在创建新的链表如果key存在新增内容如果移除了所有的值空链表也代表不存在在两遍插入或者改动值效率最高中间元素相对来说效率会低一点队列 LPOP RPUSH栈 LPOP LPUSH4.集合 set
set中的值是不能重复的sadd 给set中添加值格式 sadd key value1 value2 ... 示例其中第二次命令可以看出在key(name)后添加value才可以成功执行 获取set中的所有值格式 smembers key判断某个值是否在set中格式 sismember key value获取set中元素的个数格式 scard key删除set中的值格式 srem key value1 value2....从set中获取随机值格式 srandmember key count 示例假如一个抽奖机制随机发送奖品 在jiangpin(奖品)中随机抽取shubao(书包)、shuibei(水杯)、qianbi(铅笔) 随机删除指定个数个元素格式 spop key count将指定的元素从一个set中移动到另一个set中格式 smove set1 set2 value 示例将users中的xiaoli移到到name中 数字集合类 差集 交集 并集 应用 实现交集——抖音中A用户将所有关注的人放在一个set集合中将他的粉丝放在一个集合中 可以实现共同关注共同爱好二度好友推荐好友等 实现差集 实现并集重复的只显示1遍
5.哈希
hash 可以将哈希看成是一个Map集合key-value中的value是一个map集合
设置或者获取一个hash的值格式设置: hset key field1 value1 获取 hget key field设置或者获取hash的值格式设置 hmset key field1 value1 field2 value2 ... 获取hmget key field1 field2...获取hash中的所有值getall删除指定field的hash键值对格式: hdel key field126.有序集合 zset
添加一个值格式 zadd key scores value获取zset中一个范围的值格式 zrange key start stop将zset中的值按照score从小到大排序输出格式 zrangebyscore key min max移除zset中指定的元素格式 zrem key value查看zset中的元素个数格式 zcard key根据score的值统计在给定区间的元素个数格式 zcount key min max