非关系型数据库redis
Redis初始
redis中不区分字母的大小写
查看端口 ss tnlp
安装
编译安装(需要先配置epel源)
yum install -y redis
编译安装
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
解压
tar -zxf redis-4.0.10.tar.gz
3.切换redis源码目录
cd redis-4.0.10.tar.gz
4.编译源文件
make
5.编译好后,src/目录下有编译好的redis指令
6.make install 安装到指定目录,默认在/usr/local/bin
redis可执行文件
./redis-benchmark //用于进行redis性能测试的工具
./redis-check-dump //用于修复出问题的dump.rdb文件
./redis-cli //redis的客户端
./redis-server //redis的服务端
./redis-check-aof //用于修复出问题的AOF文件
./redis-sentinel //用于集群管理
1、启动redis服务
进入安装目录 默认/usr/local/bin
执行./redis-server
redis-server redis.conf
默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。
启动redis后会默认占用终端口
2、redis连接
./redis-cli
[wusir@localhost bin]$ ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
127.0.0.1:6379> echo 'return pong successful connection'
"return pong successful connection
回复pong表示连接成功
ECHO 与linux的打印效果一致
127.0.0.1:6379> set name 'dog'
OK
127.0.0.1:6379> get name
"dog"
127.0.0.1:6379>
3、常用命令
退出命令
quit
127.0.0.1:6379> quit
[wusir@localhost bin]$del删除命令
127.0.0.1:6379> SET ZJW SG
OK
127.0.0.1:6379> SET QQ HHHH
OK
127.0.0.1:6379> DEL name
(integer) 1
127.0.0.1:6379> set name
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> get zjw
(nil)
127.0.0.1:6379> get ZJW
"SG"
127.0.0.1:6379> get QQ
"HHHH"
127.0.0.1:6379> DEL ZJW QQ
(integer) 2 删除一个或者多个值
127.0.0.1:6379>
127.0.0.1:6379> del aaa
(integer) 0 不存在的被忽略掉
127.0.0.1:6379>
exites key
127.0.0.1:6379> set wusir 666
OK
127.0.0.1:6379> exists wusir
(integer) 1
127.0.0.1:6379> exists name
(integer) 0keys *
查看所有的key 值
keys 匹配规则(正则)
KEYs a??,
expire key 秒
设置有效时间,
TTL key
查看剩余有效时间,两个特殊值-2key不存在(KEY过期),-1永久有有效,不设置时间
pexpire key 毫秒
设置有效毫秒
pttl key
查看剩余毫秒
randomkey
随机获取一个KEY,但是不删除,数据库为空返回nil
move key db
将数据转移至其他的数据库
rename
重命名KEY,如果不存在则报错
rename key newkey,如果已有key,则直接覆盖
127.0.0.1:6379> set name helloworld
OK
127.0.0.1:6379> keys *
1) "wusir"
2) "name"
127.0.0.1:6379> set hh 12345
OK
127.0.0.1:6379> expire name 10
(integer) 1
127.0.0.1:6379> ttl name
(integer) 5
127.0.0.1:6379> ttl name
(integer) 2
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> ttl wusir
(integer) -1
127.0.0.1:6379> keys *
1) "wusir"
2) "hh"
127.0.0.1:6379> keys h?
1) "hh"
127.0.0.1:6379> pexpire hh 9000
(integer) 1
127.0.0.1:6379> pttl hh
(integer) 3405
127.0.0.1:6379> pttl
(error) ERR wrong number of arguments for 'pttl' command
127.0.0.1:6379> pttl hh
(integer) -2
127.0.0.1:6379> pttl wusir
(integer) -1
127.0.0.1:6379> set zjw hello
OK
127.0.0.1:6379> keys
(error) ERR wrong number of arguments for 'keys' command
127.0.0.1:6379> keys *
1) "wusir"
2) "zjw"
127.0.0.1:6379> set www fff
OK
127.0.0.1:6379> set ggg ccc
OK
127.0.0.1:6379> keys *
1) "ggg"
2) "wusir"
3) "www"
4) "zjw"
127.0.0.1:6379> set key valse
OK
127.0.0.1:6379> randromkey
(error) ERR unknown command `randromkey`, with args beginning with:
127.0.0.1:6379> randomkey
"www"
127.0.0.1:6379> randomkey
"ggg"
127.0.0.1:6379> randomkey
"www"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> randomkey
"key"
127.0.0.1:6379> randomkey
"www"
127.0.0.1:6379> move www 2
(integer) 1
127.0.0.1:6379> move www 2
(integer) 0
127.0.0.1:6379> get www
(nil)
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> get www
"fff"
127.0.0.1:6379[2]> select 3
OK
127.0.0.1:6379[3]> randomkey
(nil)
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379> keys *
1) "ggg"
2) "key"
3) "zjw"
4) "wusir"
127.0.0.1:6379> rename ggg gege
OK
127.0.0.1:6379> rename key kkk
OK
127.0.0.1:6379> keys *
1) "kkk"
2) "zjw"
3) "gege"
4) "wusir"
127.0.0.1:6379> get kkk
"valse"
127.0.0.1:6379> get zjw
"hello"
127.0.0.1:6379> rename kkk zjw
OK
127.0.0.1:6379> get zjw
"valse"
127.0.0.1:6379> renamenx gege wusir
(integer) 0
127.0.0.1:6379> get wusir
"666"
127.0.0.1:6379> get gege
"ccc"
127.0.0.1:6379> keys *
1) "zjw"
2) "gege"
3) "wusir"
127.0.0.1:6379> type gege
string
127.0.0.1:6379> type wusir
string
127.0.0.1:6379> type kkkkkkk
none
127.0.0.1:6379> lpush alexlist dsb dsb2
(integer) 2
127.0.0.1:6379> type alexlist
list
127.0.0.1:6379>
renamenx
127.0.0.1:6379> keys *
1) "ggg"
2) "key"
3) "zjw"
4) "wusir"
127.0.0.1:6379> rename ggg gege
OK
127.0.0.1:6379> rename key kkk
OK
127.0.0.1:6379> keys *
1) "kkk"
2) "zjw"
3) "gege"
4) "wusir"
127.0.0.1:6379> get kkk
"valse"
127.0.0.1:6379> get zjw
"hello"
127.0.0.1:6379> rename kkk zjw
OK
127.0.0.1:6379> get zjw
"valse"
127.0.0.1:6379> renamenx gege wusir
(integer) 0
127.0.0.1:6379> 127.0.0.1:6379> get wusir
"666"
127.0.0.1:6379> get gege
"ccc"
127.0.0.1:6379> keys *
1) "zjw"
2) "gege"
3) "wusir"
127.0.0.1:6379>
type
查看存储value的数据类型,如果键不存在返回None
127.0.0.1:6379> type gege
string
127.0.0.1:6379> type wusir
string
127.0.0.1:6379> type kkkkkkk
none
127.0.0.1:6379> lpush alexlist dsb dsb2
(integer) 2
127.0.0.1:6379> type alexlist
list
127.0.0.1:6379>select 命令
SELECT 2;
默认到2库中;总共有16个库,编号为0到15
切换redis的库
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> select 15
OK
127.0.0.1:6379[15]> select 16
(error) ERR DB index is out of range 127.0.0.1:6379[15]> get name
(nil)
127.0.0.1:6379[15]> select 0
OK
127.0.0.1:6379> get name
"dog"
127.0.0.1:6379>[wusir@localhost bin]$ ./redis-cli -n 15
127.0.0.1:6379[15]>
启动的时候直接进行到对应库
info命令获取系统信息
127.0.0.1:6379> info 不加参数显示所有
# Server
redis_version:6.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c38900315f2f12fd
redis_mode:standalone
os:Linux 3.10.0-1160.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:8451
process_supervised:no
run_id:4bccf2f220d12c142d1514a61119a717b83ecb04
tcp_port:6379
server_time_usec:1634866336526570
uptime_in_seconds:1048
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:7476384
executable:/usr/local/bin/./redis-server
config_file:
io_threads_active:0 # Clients
connected_clients:1
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:24
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0 # Memory
used_memory:873680
used_memory_human:853.20K
used_memory_rss:3014656
used_memory_rss_human:2.88M
used_memory_peak:931824
used_memory_peak_human:909.98K
used_memory_peak_perc:93.76%
used_memory_overhead:830408
used_memory_startup:809832
used_memory_dataset:43272
used_memory_dataset_perc:67.77%
allocator_allocated:920808
allocator_active:1187840
allocator_resident:3702784
total_system_memory:1907744768
total_system_memory_human:1.78G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:1.29
allocator_frag_bytes:267032
allocator_rss_ratio:3.12
allocator_rss_bytes:2514944
rss_overhead_ratio:0.81
rss_overhead_bytes:-688128
mem_fragmentation_ratio:3.63
mem_fragmentation_bytes:2183736
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:20504
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0 # Persistence
loading:0
current_cow_size:0
current_cow_size_age:0
current_fork_perc:0.00
current_save_keys_processed:0
current_save_keys_total:0
rdb_changes_since_last_save:2
rdb_bgsave_in_progress:0
rdb_last_save_time:1634865288
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0 # Stats
total_connections_received:4
total_commands_processed:19
instantaneous_ops_per_sec:0
total_net_input_bytes:526
total_net_output_bytes:81517
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:27
evicted_keys:0
keyspace_hits:3
keyspace_misses:1
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
total_forks:0
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_error_replies:1
dump_payload_sanitizations:0
total_reads_processed:23
total_writes_processed:19
io_threaded_reads_processed:0
io_threaded_writes_processed:0 # Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:937790b8a90dd91e03356bf4237c7e49224caefc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0 # CPU
used_cpu_sys:1.765061
used_cpu_user:1.087562
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
used_cpu_sys_main_thread:1.595049
used_cpu_user_main_thread:1.214142 # Modules # Errorstats
errorstat_ERR:count=1 # Cluster
cluster_enabled:0 # Keyspace
db0:keys=1,expires=0,avg_ttl=0 127.0.0.1:6379> info cpu 加上参数显示指定的系统信息
# CPU
used_cpu_sys:1.860890
used_cpu_user:1.153960
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
used_cpu_sys_main_thread:1.687953
used_cpu_user_main_thread:1.283307
127.0.0.1:6379>
4、redis数据类型
- String
- hash
- list
- set
- zset 有序
非关系型数据库redis的更多相关文章
- JavaWeb笔记(十)非关系型数据库Redis
Redis Redis是一款高性能的NOSQL系列的非关系型数据库 主流的NOSQL产品 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant.Redis.Vol ...
- 非关系型数据库--redis
0.1 新单词 expire 美 /ɪk'spaɪɚ/ 到期 range 美 /rendʒ/ 范围 idle美 /'aɪdl/ 闲置的 0.2 面试题:mysql和redis和memcached区别? ...
- Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)
day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库: 简称:DataBase ---->DB 数据库即存放数据的仓库, ...
- Redis非关系型数据库
1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写. Redis一般作为分布式缓存框架.分布式下的SESSION分离.分布式锁的实现等等. Redis速度快的原因: ...
- python 之操作redis数据库(非关系型数据库,k-v)
数据库: 1. 关系型数据库 表结构 2. 非关系型数据库 nosql (k - v 速度快),常用的时以下三种: memcache 存在内存里 redis 存在内存里 mangodb 数据还是存在磁 ...
- 数据库基础 非关系型数据库 MongoDB 和 redis
数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...
- Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念
Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...
- 【Redis】(1)-- 关系型数据库与非关系型数据库
关系型数据库与非关系型数据库 2019-07-02 16:34:48 by冲冲 1. 关系型数据库 1.1 概念 关系型数据库,是指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型, ...
- Redis 01: 非关系型数据库 + 配置Redis
数据库应用的发展历程 单机数据库时代:一个应用,一个数据库实例 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大) 水平切分时代:将数据库中的表存放到不同数据库 ...
随机推荐
- python 裴伯拉切数列
裴伯拉切数列:从第三个元素开始,每个元素为该元素前面的两个元素的和. 裴伯拉切数列:0,1,1,2,3,5,8,13,21,34,55...... 求出小于n的裴伯拉切数列. def fibo(n): ...
- js 二分查找法之每日一更
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- NSURLConnection和Runloop(面试)
(1)两种为NSURLConnection设置代理方式的区别 //第一种设置方式: //通过该方法设置代理,会自动的发送请求 // [[NSURLConnection alloc]initWithRe ...
- background-position:color url(image) -left -up no-repeat;
转载请注明来源:https://www.cnblogs.com/hookjc/ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- SQLite 基础不扎实造成的:error code 19: constraint failed
感谢大佬:https://www.cnblogs.com/flintlovesam/p/5241866.html (https://www.cnblogs.com/flintlovesam/p/524 ...
- xargs、sort、uniq命令
xargs.sort.uniq命令,我们由LeetCode的一道题来引入,并使用加以理解: 题目是这样的:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. word ...
- 【收藏】Supervisor的作用与配置
原文链接:https://www.jianshu.com/p/0226b7c59ae2 supervisor supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supe ...
- 性能测试之监控--zabbix通过jmx监控tomcat
前提: 已经安装好了zabbix server 实验环境 Centos 7 Zabbix 3.0 Tomcat 7.0 JDK 1.8 安装JDK tar -zxvf jdk-8u181-linux- ...
- Docker的数据管理(下)——docke镜像的创建
Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...
- Docker容器和宿主机互传文件
1.docker容器向宿主机传送文件 格式: docker cp container_id:<docker容器内的路径> <本地保存文件的路径> 例: docker cp 10 ...