redis学习
文章平均质量分 54
花落文心
java开发,学习中...
展开
-
day26 redis + lua 实现批量操作
来操作redis数据库。在删除key时,会出现批量删除某些包含特定字符的key。,可以删除指定的key,但是如果需要删除的key很多时,这种操作就不再合适。命令,获取当前库中所有符合规则 parents 的key列表。使用 redis 命令 + lua 脚本的方式可以很好的实现相关操作。原创 2023-05-30 11:05:51 · 453 阅读 · 0 评论 -
day25 redis java使用
java 使用 redis安装开始在 java 中使用 redis 前,我们需要确保已经安装了 redis 服务和 java redis 驱动,且你的机器可以使用 java。请注意下载驱动包 jedis.jdk,请确保下载最新驱动包在你的 classpath 中包含该驱动连接到 redis 服务import redis.clients.jedis.Jedis;public class RedisJava{ public static void main(String[] args原创 2021-03-05 19:55:28 · 52 阅读 · 0 评论 -
day24 redis 分区
redis 分区分区就是分隔数据到多个redis实例的处理过程,因此每个实例只保存 key 的一个子集。分区的优势通过利用多台计算机内存的和值,允许我们构造更大的数据库。通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络带宽。分区的不足redis的一些特性在分区方面的表现不是很好:涉及多key的操作通常是不被支持的。涉及多key的redis事务不能使用使用分区时,数据处理较为复杂。如你需要处理多个 rdb/aof 文件,并且从多个实例和主机备份持原创 2021-03-04 16:08:07 · 66 阅读 · 0 评论 -
day23 redis 管道
redis 管道技术redis 是一种基于 客户端-服务端模型 以及 请求/响应协议 的TCP服务。这以为这通常情况下一个请求会遵循以下步骤客户端向服务端发送一个查询请求,并监听 socket返回,通常是阻塞模式,等待服务端响应。服务端处理命令,并将结果返回客户端。管道技术redis 管道技术可以在服务端无响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的相应。实例$(echo -en "PING\r\n SET runoobkey redis\r\nGET runoob原创 2021-03-04 16:07:30 · 88 阅读 · 1 评论 -
day22 redis 客户端连接
Redis 客户端连接redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,redis 内部会进行一下操作:首先,客户端 socket 会被设置为非阻塞模式,因为 redis 在网络事假处理上采用的是非阻塞式多路复用模型然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法。然后创建一个可读的文件事件用来监听这个客户端 socket 的数据发送最大连接数你可以在 redis.conf 中对 maxcl原创 2021-03-04 16:06:27 · 52 阅读 · 1 评论 -
day21 redis 性能测试
redis 性能测试redis 性能测试时通过同时执行多个命令实现的语法redis-benchmark [option] [option value]请注意:该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令示例以下示例同时执行 10000 个请求来检测性能$ redis-benchmark -n 10000 -q参数列表选项描述默认-h指定服务器主机名127.0.0.1-p指定服务器端口6379-s指定服务器 s原创 2021-03-04 16:05:57 · 50 阅读 · 2 评论 -
day20 redis 安全
redis 安全我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让 redis 服务更安全。临时密码实例我们可以通过下边的命令查看是否设置了密码验证。> CONFIG get requirepass1) "requirepass"2) ""默认情况下 requirepass 参数是空的,这意味着你无需通过密码就可以连接到 redis 服务。可以通过下方命令来修改参数。> CONFIG set requirepass原创 2021-03-04 16:05:27 · 46 阅读 · 1 评论 -
day19 redis 数据备份与恢复
redis 数据备份与恢复redis 的 SAVE 命令用于创建当前数据库的备份语法redis 127.0.0.1:6379 > SAVE> SAVEOK该命令将在 redis 安装目录中创建 dump.rdb 文件数据恢复如果需要恢复数据,只需将备份文件(dump.rdb)移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令> CONFIG GET dir1) "dir"2) "/usr/local/bin"以上命原创 2021-03-04 16:04:56 · 52 阅读 · 1 评论 -
day18 redis stream
redis streamredis stream 是 redis 5.0 新增的数据结构。它主要用于消费队列(MQ),redis 本身是有一个 redis 发布订阅(pub/sub)来实现消息队列的功能,但是它有一个确定就是消息无法持久化,如果出现网络断开、redis宕机等,消息就会被丢弃。即发布订阅(pub/sub)功能可以分发消息,但不能记录历史消息。而 redis stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并记住每一个客户端的访问位置,还能保证消息不原创 2021-03-04 10:46:59 · 135 阅读 · 1 评论 -
day17 redis GEO
redis GEOredis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 3.2版本新增redis GEO 操作方法有:geoadd:添加地理位置的坐标geopos:获取地理位置的坐标geodist:计算两个位置之间的距离georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合georadiusbymember:根据存储在位置集合里面的某个地点获取指定范围内的地理位置集合geohash:返回一个或多个位置对象的 geohash 值geoad原创 2021-03-02 19:10:41 · 84 阅读 · 0 评论 -
day16 redis 服务器
redis 服务器redis 服务器命令主要用于管理 redis 服务使用 INFO 命令获取 redis 服务器的统计信息命令列表命令描述BGREWRITEAOF异步执行一个 AOF 文件重写操作BGSAVE在后台异步保存当前数据库的数据到磁盘CLIENT KILL [ip:port] [ID client-id]关闭客户端连接CLIENT LIST获取连接到服务器的客户端连接列表CLIENT GETNAME获取连接的名称CLIENT原创 2021-03-02 19:09:00 · 68 阅读 · 0 评论 -
day15 redis 连接
redis 连接redis连接命令主要用于连接 redis 服务示例> AUTH "password"OK> PINGPONG命令列表命令描述AUTH password验证密码是否正确ECHO message打印字符串PING查看服务是否运行OUT关闭当前连接SELECT index切换到指定的数据库...原创 2021-03-02 19:08:28 · 47 阅读 · 0 评论 -
day14 redis 脚本
redis 脚本redis 脚本使用 Lua 解释器来执行脚本。redis2.6 版本之后通过内嵌支持 Lua 环境。执行脚本的命令为 EVAL语法EVAL script numkeys key [key …] arg [arg …]示例EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second1) "key1"2) "key2"3) "first"4) "second"命令列表命令原创 2021-03-02 19:08:01 · 51 阅读 · 0 评论 -
day13 redis 事务
redis 事务redis 事务可以一次执行多个命令,并且带有三个重要保证:批量操作在发送 EXEC 命令前辈放入队列缓存收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其他命令依然被执行。一个事务执行过程中,其他客户端提交的命令请求不会插入到事务执行命令序列中。事务执行过程: 开始事务 -> 命令入队 -> 执行事务实例首先以 MULTI 开始一个事务,然后将多个命令入队到事务中,最后由 EXEC 命令触发事务,一并执行事务中的所有命令MULTISET boo原创 2021-03-02 19:06:54 · 58 阅读 · 3 评论 -
day12 redis 发布订阅
redis 发布订阅redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息redis 客户端可以订阅任意数量的频道订阅模式,频道 channel1,客户端client发布模式。当有新消息通过 PUBLISH 命令发送给频道 channel1 时,这个消息就会被发送给订阅他的三个客户端。实例需要开启两个 redis-cli 客户端在第一个客户端输入SUBSCRIBE name,表示订阅 name 频道在第二个客户端输入PUBLISH原创 2021-03-01 20:38:28 · 70 阅读 · 1 评论 -
day11 redis HyperLogLog
redis HyperLogLogredis 在 2.8.9 版本添加了 HyperLogLog 结构redis HyperLogLog 是用来做基数统计的算法,HyperLogLog的优点是:在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的,并且很小。在 redis 里,每个HyperLogLog键只需要花费12kb内存,既可以计算接近 2^64个不同元素的技术。这和计算基数时,元素越多消耗内存越多的集合形成鲜明对比。但,HyperLogLog智慧根据输入元素来计算基数,而不会原创 2021-02-28 17:01:51 · 61 阅读 · 0 评论 -
day10 redis 有序集合(sorted set)
redis 有序集合(sorted set)redis 有序集合与集合一样都是string类型的元素集合,且不允许重复不同的是有序集合的每个元素都会关联一个double类型的分数,用于从小到大进行排序。有序集合的成员唯一,但是分数可以重复。实例ZADD name 1 redisZADD name 2 mongodbZADD name 3 mysqlZADD name 3 mysqlZADD name 4 mysqlZRANGE name 0 10 WITHSCORES1) "r原创 2021-02-28 15:50:30 · 69 阅读 · 0 评论 -
day9 redis 集合(Set)
redis 集合redis 的 set 是 String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。redis 中集合是通过哈希表来实现的,所以添加、删除、查找的复杂度都是O(1)集合中最大的成员数为 2^32-1实例SADD name redisSADD name mongodbSADD name mysqlSMEMBERS name1) "mysql"2) "mongodb"3) "redis"redis 命令集合命令描述S原创 2021-02-28 15:49:52 · 59 阅读 · 0 评论 -
day8 redis 列表(List)
redis 列表(List)redis 列表时简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部或尾部一个列表最多可以包含 2^32-1 元素(40亿+)实例LPUSH name redisLPUSH name mongodbLPUSH name mysqlLPUSH name 0 101) "mysql"2) "mongodb"3) "redis"命令列表命令描述BLPOP key1[,key2] timeout移除并获取列表的第一个元原创 2021-02-27 21:23:07 · 69 阅读 · 0 评论 -
day7 redis 哈希(hash)
redis 哈希(Hash)redis 中 hash 是一个 string 类型的 field(字段)和value(值)的映射表,hash 特别适合用于存储对象。每个hash 可以存储 2^32-1 键值对(40亿+)实例HMSET info "hello world" 20 likes 3000HGETALL info1) hello world2) 203) likes4) 3000redis hash 命令列表命令描述HDEL key field1[,原创 2021-02-27 18:25:51 · 77 阅读 · 1 评论 -
day6 redis 字符串(String)
redis 字符串(String)redis 字符串数据类型的相关命令用于管理 redis 字符串值语法COMMAND KEY_NAME字符串命令表命令描述SET key value设置指定key的值GET key获取指定key的值GETRANGE key start end返回key中字符串值的子字符GETSET key value将给定key的值设为value,并返回key的旧值GETBIT key offset对 key 所存放的原创 2021-02-27 18:25:20 · 53 阅读 · 0 评论 -
day5 redis 键(key)
redis 键(key)语法redis 键命令 的基本语法:COMMAND KEY_NAME实例SET name "zs"DEL nameredis keys 命令命令描述DEL key该命令用于在key存在时删除keyDUMP key序列化给定key,并返回被序列化的值EXISTS key检查给定的key是否存在EXPIRE key seconds为给定key设置过期时间,以秒计EXPIREAT key timestampEXPI原创 2021-02-27 18:24:41 · 146 阅读 · 0 评论 -
day4 redis 客户端启动
redis 客户端启动redis命令用于在redis服务上执行操作。而要在redis 服务上执行命令需要一个redis 客户端。redis客户端在 redis的安装包中。启动客户端redis-cli在远程服务上执行命令redis-cli -h host -p port -a password在 credis-cli 后加上 --raw 可以防止可能出现的中文乱码问题。redis-cli --raw...原创 2021-02-27 18:24:10 · 103 阅读 · 0 评论 -
day3 redis 数据类型
redis 数据类型redis支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(集合)及 zset(sorted set:有序集合)。string(字符串)string 是 redis 最基本的类型,你可以理解成与 Memcached 一样的类型,一个key对应一个value。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg图片或者序列化的对象。string 类型是 redis 最基础的数据类型,stri原创 2021-02-27 18:23:32 · 55 阅读 · 0 评论 -
day2 redis 配置
redis 配置redis 的配置文件位于 redis 安装目录下,名为redis.config(windows系统下名为 redis.windows.config)。可以通过 CONFIG 命令查看或设置配置项。查看配置语法redis的 CONFIG 命令格式:redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME使用 * 获取所有配置项redis 127.0.0.1:6379> CONFIG GET *示例red原创 2021-02-27 18:22:48 · 55 阅读 · 0 评论 -
day1 redis 简介
redis 简介redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库特点redis 支持数据持久化,可以将内存中的数据存放到本地磁盘中,重启时可以再次加载使用redis 不仅支持 key-value 类型的数据,同时提供 list、set、zset、hash 等数据结构的存储redis 支持数据的备份,即 master-slave 模式的数据备份redis 优势性能极高:redis能读的速度为 11w 次/s,写的速度为 8.1w 次/s。丰富的数据原创 2021-02-27 18:21:54 · 53 阅读 · 0 评论