Redis基础学习
中文网站网站
英文网站
安装Redis和查看状态
apt-get update
apt-get install gcc
apt-get install redis-server
netstat -nlt|grep 6379
Redis命令
redis-cli -p 6379 #使用redis客户端进行连接
redis-benchmark 压力测试工具
官方自带
参数
1 | -h | 指定服务器主机名 | 127.0.0.1 |
2 | -p | 指定服务器端口 | 6379 |
3 | -s | 指定服务器socket | |
4 | -c | 指定并发连接数 | 50 |
5 | -n | 指定请求数 | 10000 |
6 | -d | 以字节的形式指定SET/GET值的数据大小 | 2 |
7 | -k | 1=keep alive 0=reconnet | 1 |
8 | -r | SET/GET/INCR 使用随机key,SADD使用随机值 | |
9 | -P | 通过管道传输<numreq>请求 | 1 |
10 | -q | 强制退出redis,仅显示query/sec值 | |
11 | --csv | csv格式 | |
12 | -l | 生成循环,永久测试 | |
13 | -t | 进运行以逗号分隔的测试命令列表 | |
14 | -I | Idle模式,仅打开N个idle连接并等待 |
测试
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
配置文件
redis一共有16个数据库
切换数据库
查看当前数据库的DB大小
不同的数据库可以存不同的值
删除库的当前数据和所有库的数据
清除全部数据库的内容
Redis是单线程
Redis基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽。
redis是C语言写的,官方 100000+的QPS
Redis为什么单线程还这么快?
高性能的服务器不一定是多线程。
多线程不一定比单线程效率高。
redis将所有的数据全部放在内存中,单线程操作效率就是高。
CPU上下文切换:耗时高。
Redis的五大数据类型和三种特殊数据类型
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。(Redis的三个作用)
它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)
与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence)
并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
Redis-Key
移动name到1这个数据库里
让key过期
查看key的类型
追加字符(动态修改)
追加字符串,如果key不存在,就等于setkey
官方命令官方文档
http://www.redis.cn/commands.html
String(字符串)
获取字符串的长度
实现游览量每有一个人看,观看人数+1或-1
设置步长,指定增量
获取设置好的字符串一部分的值
替换字符串
设置过期时间和设置不存在的值就创建
如果key3不存在,创建成功
如果key3存在,创建失败
批量get值和批量set值
批量设置值
、
批量获取值
同时设置多个值,要么一起成功,要么一起失败
对象
user:{id}:{filed}
getset #不存在,先get再set,
#存在,获取原来的值并更新
value除了是字符串还可以是数字。场景:计数器 统计多单位的数量 对象缓存存储 粉丝数