redis初步学习
一些简单的思想总结
1、我们要将配置文件复制一份,保留一份原有的,避免误改导致的文件错误。
2、redis默认不是后台运行的,需要修改配置文件,把deamonize 改成yes。
3、redis 是单线程的 redis是基于内存操作 、cpu不是redis性能瓶颈,cpu的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了!
Redis在linux的安装详解
#先进行下载 下载完成后 将安装包传到linux服务器上 一般放到opt目录下
tar -zxvf 包名
#进入目录后 yum install gcc-c++ 安装基本的环境
gcc -v 查看版本
#make 自动配置上需要的文件
#redis 默认安装路径 usr/local/bin
#使用指定默认配置文件启动
[root@iZf8zaekpumjn6q1vv1fmiZ bin]# redis-server newbieconfig/redis.conf
#检查是否启动成功,使用 Redis客服端进行连接
[root@iZf8zaekpumjn6q1vv1fmiZ bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name newbie
OK
127.0.0.1:6379> get name
"newbie"
127.0.0.1:6379> keys * #查看所有的key
1) "name"
127.0.0.1:6379>
#查看服务和连接
[root@iZf8zaekpumjn6q1vv1fmiZ bin]# ps -ef|grep redis
#redis 关闭 shutdown
[root@iZf8zaekpumjn6q1vv1fmiZ bin]# redis-cli -p 6379
127.0.0.1:6379> shutdown
not connected> exit
[root@iZf8zaekpumjn6q1vv1fmiZ bin]# ps aux|grep redis
root 1838567 0.0 0.0 221460 792 pts/0 R+ 15:48 0:00 grep --color=auto redis #redis在linux的安装
[root@iZf8zaekpumjn6q1vv1fmiZ bin]#
测试性能
redis-benchmark #官方自带
#测试:100个并发连接 100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
#随便取一个去解读
====== INCR ======
100000 requests completed in 1.32 seconds #对我们 10万个请求进行写入测试
100 parallel clients
3 bytes payload #每次写入3个字节
keep alive: 1 #只有一台服务器处理这些请求 单机性能
host configuration "save": 3600 1 300 100 60 10000
host configuration "appendonly": no
multi-thread: no
基础知识
默认有 16个数据库
默认使用的第0个
16个数据库为:DB 0~DB 15
默认使用DB 0 ,可以使用select n
切换到DB n,dbsize
可以查看当前数据库的大小,与key数量相关。
keys * :查看选中数据库中所有的key。
flushdb:清空选中数据库中的键值对。
flushall:清空所有数据库的键值对。
CPU 上下文切换:就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。. 而这些保存下来的上下文,会存储在系统内核中,并在任务重新调度执行时再次加载进来。. 这样就能保证任务原来的状态不受影响,让任务看起来还是连续运行
五大数据类型
喜欢看文档的可以直接看Redis 键(key) | 菜鸟教程 (runoob.com)
Redis keys 命令
下表给出了与 Redis 键相关的基本命令:
序号 | 命令及描述 |
---|---|
1 | DEL key 该命令用于在 key 存在时删除 key。 |
2 | DUMP key 序列化给定 key ,并返回被序列化的值。 |
3 | EXISTS key 检查给定 key 是否存在。 |
4 | EXPIRE key seconds 为给定 key 设置过期时间,以秒计。 |
5 | EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。 |
6 | PEXPIRE key milliseconds 设置 key 的过期时间以毫秒计。 |
7 | PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
8 | KEYS pattern 查找所有符合给定模式( pattern)的 key 。 |
9 | MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。 |
10 | PERSIST key 移除 key 的过期时间,key 将持久保持。 |
11 | PTTL key 以毫秒为单位返回 key 的剩余的过期时间。 |
12 | TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 |
13 | RANDOMKEY 从当前数据库中随机返回一个 key 。 |
14 | RENAME key newkey 修改 key 的名称 |
15 | RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。 |
16 | [SCAN cursor MATCH pattern] [COUNT count] 迭代数据库中的数据库键。 |
17 | TYPE key 返回 key 所储存的值的类型。 |