启动redis 服务 执行命令: redis-server.exe 建立连接 redis-cli.exe -h 127.0.0.1 -p 6379 搞一条件数据 key1 –> myRedis
/src/redis-server redis.conf 启动 redis . UtliRedis.shutdown(jp,jedis); } } 五、数据类型及api 数据类型: 1 、字符串(string) 2、散列(hash) 3、列表(set) 4、集合(list) 5、 - lpush list1 2 3 左添加(建议 –> key = list:1) llen list 获取元素个数 lrange list 0 2 获取区间元素(0 2) lrem list 5 lxm 删除 5个value 为 lxm 的元素(从左边) ————————— java 实列 —————————————– value 值可以为集合 jedis.lpush("lists", "LinkedList ” “name” “apple” “price” “999.9” key = 对象名+ :id (如 items:1001) –> 这样可以通过 对象名+ :id获取对应id 的 map集合属性 5、
Redis需要监控才知道具体运行信息,虽然Redis也提供了info等命令行,但是毕竟不方便而且不能保存历史信息。 redis-stat是一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息。 3.安装redis-stat # git clone https://github.com/junegunn/redis-stat.git # gem install redis-stat 会提示 Building /redis-stat 1 ? /redis-stat xxx.xxx.xxx.xxx:6379 --server=8080 5 --daemon ?
Redis的安装与使用:Window版 3.1 下载 3.2 Redis的安装与启动 3.3 安装GUI(图形化工具) 3.4 常见命令 4. jedis 4.1 jedis的介绍 4.2 jedis入门 VMware公司从2010年开始赞助Redis的开发, Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。 redis服务器启动命令 redis.windows.conf redis核心配置文件 3.2.3 启动 启动与关闭:双击Redis目录中redis-server.exe可以启动redis服务 :如果执行ping命令,输出内容为PONG ,表示redis已经连通 3.3 安装GUI(图形化工具) 3.3.1 介绍 使用 redis-cli 客户端工具,必须使用命令进行操作,效率比较低。 将使用图形化工具对redis数据库中的数据进行管理 redis-desktop-manager-0.9.3.817.exe 3.3.2 安装 步骤一:向导 步骤二:许可 步骤三
本地图形化工具登录腾讯云redis 用户购买了腾讯云redis后,有在本地通过图形化工具登录管理redis的需求,可以通过一台有公网的cvm配置代理实现。 download) 二、安装完成,启动: 可以导入之前导出的连接(快速导入) 新建连接: 主要配置 Connection 和 SSH Tunnel 选项,具体方式如图: 此处的AUTH方式,必须严格遵守腾讯云redis
spo" 2) "it" sunion 集合的并集 127.0.0.1:6379> sunion user_1 user_2 1) "mus" 2) "spo" 3) "his" 4) "news" 5) user_1 user_2 (integer) 6 127.0.0.1:6379> smembers user_union1_2 1) "mus" 2) "spo" 3) "his" 4) "news" 5) ) "his" 2) "mus" 内部编码 集合类型的内部编码有2种: intset 整数集合:当集合类型元素都是整数且个数小于list-max-intlist-entries配置(默认512个),redis hashtable哈希表当集合类型无法满足intset的条件是,redis会使用hashtable作为列表的内部实现。
rpush list1 1 2 3 4 (integer) 8 192.168.25.153:6379> lrange list1 0 -1 1) "d" 2) "c" 3) "b" 4) "a" 5) 192.168.25.153:6379> rpop list1 "4" 192.168.25.153:6379> lrange list1 0 -1 1) "c" 2) "b" 3) "a" 4) "1" 5) 5.有序集合类型SortedSet(zset): 有顺序,不能重复 192.168.25.153:6379> zadd zset1 2 a 5 b1 c 6 d (integer) 4 192.168.25.153 0-1 1) "d" 2) "b" 3) "c" 192.168.25.153:6379> zrange zset1 0 -1withscores 1) "c" 2) "1" 3) "b" 4) "5" 5) "d" 6) "6" 192.168.25.153:6379> zrevrange zset1 0-1 withscores 1) "d" 2) "6" 3) "b" 4) "5" 5) "c"
OKkeys * *6$1d$1c$19$1b$1a$18master 上也多了一个 dump.rdb 文件127.0.0.1:6379> keys * 1) "b"2) "a"3) "c"4) "8"5) > 127.0.0.1:6379> quit[root@m1 ~]# lsanaconda-ks.cfg Downloads install.log.syslog Pictures redis -3.0.0.tar.gz redis-new.conf tmpDesktop dump.rdb log Public redis.conf redis_slave_on_m1.conf VideosDocuments install.log Music redis -3.0.0 redis.log Templates[root@m1 ~]#
a (integer) 4 # 获取数据是有序的 127.0.0.1:6379> zrange lzset 0 -1 withscores 1) "a" 2) "1" 3) "b" 4) "10" 5) redis.conf配置 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 超过阈值之后,使用skiplist+dict存储。 在插入一个数据的时候,决定要放到那一层,取决于一个算法(在redis中t_zset.c有一个zslRandomLevel这个方法)。 现在当我们想查找数据的时候,可以先沿着这个新链表进行查找。
Redis主从模式: 当数据量变得庞大的时候,为了降低redis服务器的负载,可以多设置几个,并做主从模式。 一个服务器负载"写"数据,其他服务器负载"读"数据。 找到162行, 修改 ip,端口: 然后kill掉redis,重启服务。 就可以读入主服务器的数据。但是只可以读取。 Redis图形化管理工具: 根据需要来进行配置。 一般连接自己就是127.0.0.1
redis-admin 输入图片说明 介绍 轻量级Redis缓存图形化管理工具,包含redis的5种数据类型的CRUD操作 软件架构 后端 springboot 2.2.2.RELEASE JDK 1.8 localhost:9898/dist/index.html#/login 系统默认用户名: admin 密码: admin 已发布到 https://hub.docker.com 搜索 aoyanfei/redis-admin 【推荐使用docker】 下载镜像 docker pull aoyanfei/redis-admin 调整内容 用户管理支持多用户、用户的增删改 redis配置存储到h2数据库 前端页面增加了简单的权限控制 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 地址:https://gitee.com/xianxin98/redis-admin
Docker 有不少好用的图形化管理客户端,可以简化我们的工作,提供效率。 下面介绍5个比较流行的 Docker 客户端工具。 Portainer ? 可以帮助我们管理容器、Service服务(本地远程都可以),并监控他们 可以轻松跟踪 CPU、内存、网络、磁盘I/O、开放端口 可以把常用的操作组织成一个项目,通过项目的方式来检查容器状态,以图形化的方式管理 小结 Docker 有很多免费的好用客户端工具,上面只是其中的5个,具体选择哪一个,还需要你来试用,了解后根据自己的实际需求来判断。 Portainer 比较适合团队使用,因为他有访问控制。
/redis-benchmark -t set -n 1000000 -r 100000000 ====== SET ====== 1000000 requests completed in 19.13 1 milliseconds 99.47% <= 2 milliseconds 99.84% <= 3 milliseconds 99.91% <= 4 milliseconds 99.93% <= 5 /redis-benchmark -t ping,set,get -n 100000 --csv "PING_INLINE","59559.26" "PING_BULK","54555.38" "SET
下面是著名云平台Heroku官方分享的5个实用建议,帮助我们更好的使用 Redis 01 使用连接池 使用连接池可以有效降低过度连接带来的性能损耗,减少创建连接的次数,从而提升性能 与我们常用的数据库连接池的作用是一样的 ,而且也不需要我们自己实现连接池功能,很多 Redis 库都已经实现,例如: redis3m(c++) gore(go) jedis(java) redis-connection-pool(node.js 从中分析问题 如果给客户端设置一个名字的话,就大大增加了结果信息的可读性,可以从大量结果信息中快速跟踪浏览 例如 CLIENT SETNAME web.1 03 设置一个合适的KEY清除策略 默认情况下 Redis 是不会清理 KEY 的,意味着当 Redis 内存不够时,创建或者更新KEY就会返回错误信息 Redis 提供了多个KEY的清除策略供我们选择,例如 allkeys-lru 使用LRU算法,从所有key KEYS 是一个 O(N) 的操作,意味着对性能的影响与结果数量成正比 在线上产品环境下,如果 KEYS 这个功能是非常必要的,建议考虑一下 SCAN 命令 05 设置一个合适的连接超时的值 默认情况下,Redis
# 离线安装redis5.0.8 安装包含脚本链接 (提取码:1314) # 用法说明 解压命令:unzip redis.zip -d /home/summer &>/dev/null cd /home /summer/redis-5.0.8/utils/create-cluster 执行启动命令:. = "0" ]; do PORT=$((PORT+1)) echo "Starting $PORT" /home/summer/redis-5.0.8/src /redis-server --port $PORT --bind $ip --masterauth $reids_pwd --requirepass $reids_pwd --protected-mode /redis-cli -a $reids_pwd -h $ip -p $PORT shutdown nosave done kill -9 $(ps -ef | grep redis |
redis 学习(5)-- 列表类型 列表特点 有序、可以重复、左右两边插入弹出 索引相关知识 索引从左往右,从0开始逐个增大 0 1 2 3 4 5 索引从右往左,从-1开始逐个减小 -6 -5 -
192.168.152.130:7004 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: e1686d5ce576e9446211fb9ae82999f4e98a8ad5 192.168.152.130:7004@17004 master - 0 1554433711000 5 connected 10923-16383 e1686d5ce576e9446211fb9ae82999f4e98a8ad5 192.168.152.129:7001@17001 slave d4e934df845735259d5d47204452df3d9089ee0c 0 1554433711531 5 connected 192.168.152.130:7004 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: e1686d5ce576e9446211fb9ae82999f4e98a8ad5 192.168.152.130:7004 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: e1686d5ce576e9446211fb9ae82999f4e98a8ad5
.conf [root@h104 x]# docker run --name myredis -d -v /tmp/x:/data redis redis-server /data/redis6379 redis-server /data/redis6379.conf 进行一下解析 Option Comment docker run 调用 docker 命令的 run 子命令 --name myredis 给这个容器取名为 myredis -d 后台模式运行 -v /tmp/x:/data 将本地的 /tmp/x 目录挂载到容器中的 /data 目录 redis 使用redis镜像 redis-server /data/redis6379.conf 使用指定的配置初始化并启动redis服务 ---- 查看日志 因为本地目录挂载到了容器中,那么日志根据映射就直接记录到了本地 [root@h104 x]# pwd /tmp/x [root@h104 x]# ls redis6379.conf redis6379.log [root@h104 x]# cat /tmp/x/redis6379.log
5. field increment 时间复杂度:O(1) 返回值:该字段变化之后的值 HINCRBYFLOAT(HINCRBY 的浮点数版本) 案例: 127.0.0.1:6379> HSET myhash f 5 ,根据 uid 获取用户信息 UserInfo userInfo = mysqlService.getUserInfoByUid(uid); // 假设存在一个数据库查询服务 // 5. James" age 23 city "Beijing" OK 127.0.0.1:6379> hgetall user:1 1) "name" 2) "James" 3) "age" 4) "23" 5) (integer) 1 //返回值0代表改field在哈希表中不存在,为新增的field 如果用户购买的商品已经存在于散列里面,那么新的订购数量会覆盖已有的订购数量; Copy//用户1 商品1 数量5
通过cluster nodes看到7001这个节点被干掉了… 那么 /redis-3.0.1/src/redis-trib.rb fix 127.0.0.1:7001 ,如果还是启动不了的话,可以把相关的 “第二个缺点完全是设计问题了,就是一个redis进程既负责读写数据又负责集群交互,虽然设计者已经尽可能简化了代码和逻辑,但还是让redis从一个内存NoSQL变成了一个分布式NoSQL。 Slot,然后还是得通过redis-trib.rb操作 严重依赖外部redis-trib:如上所述,像集群健康状况检查、结点加入、Resharding等等功能全都抽离到一个Ruby脚本中了。 虚拟机的配置为8核Intel Xeon CPU X5650@2.67GHz,16GB内存,分别搭建了4结点的单机版Redis和集群版Redis,测试一下Redis Cluster的性能损耗。 由于历史原因,历史的应用均使用传统的Redis API,若业务更换Redis Client,存在不少问题,例如升级工作、数据迁移及测试,所以业内暂未被大规模使用。