Redis数据库安装部署及基本操作详解

Redis数据库概述

Redis是一个开源的、使用c语言编写NoSQL数据库,它是基于内存运行并支持持久化,采用key-value(键值对)的存储形式, 是目前分布式结构中不可或缺的

Redis相比于其他数据库的优点

  • 具有极高的数据读写速度:读(110000次/s),写(81000次/s)
  • 支持丰富的数据类型:支持key-value、strings、Lists、Hashes(散列值)、Sets等数据类型操作
  • 支持数据持久化:可以将内存中的数据保存在磁盘中
  • Redis所有操作都是具有原子性的

Redis安装部署

[root@redis ~]# yum install -y gcc gcc-c++ make
[root@redis opt]# tar xzf redis-5.0.7.tar.gz
[root@redis opt]# cd redis-5.0.7/
[root@redis redis-5.0.7]# make
[root@redis redis-5.0.7]# make prefix=/usr/local/redis install
[root@redis redis-5.0.7]# cd utils/
[root@redis utils]# ./install_server.sh		#启动安装脚本
Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server
##这一步需要手动指定位置,其他都回车即可
[root@localhost utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/
[root@localhost utils]# netstat -antp | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      23276/redis-server

Redis服务控制

/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status

修改配置文件

[root@localhost utils]# vim /etc/redis/6379.conf 

[root@localhost utils]# /etc/init.d/redis_6379 restart		#重启服务
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
Starting Redis server...
[root@localhost utils]# netstat -antp | grep redis
tcp        0      0 192.168.118.88:6379     0.0.0.0:*               LISTEN      23492/redis-server
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      23492/redis-server

Redis命令工具

redis-server:用于启动Redis的工具
redis-benchmark:用于检测Redis在本机的运行效率
redis-check-aof:修复AOF持久化文件
redis-check-rdb:修复RDB持久化文件
redis-cli:Redis命令行工具
redis-cli -h 远程主机ip -p 服务端口号 -a 指定密码
如果没有设置数据库密码,可以省略-a选项,若不添加任何选项表示,这使用127.0.0.1:6379连接本机上的Redis数据库

Redis测试工具redis-benckmark

redis-benchmark 选项:
-h :指定服务器主机名
-P :指定服务器端口
-s :指定服务器socket(套接字)
-c :指定并发连接数
-n :指定请求数
-d :以字节的形式指定SET/GET值的数据大小
-k :1=keep alive 0=reconnect
-r :SET/GET/INCR 使用随机key,SADD使用随机值
-p :通过管道传输<numreq>请求
-q :强制退出redis
-l :生成循环,永久执行测试
-t :仅运行以逗号分割的测试命令列表
-I :Idle模式,仅打开N哥idle连接并等待
[root@localhost utils]# redis-benchmark -h 192.168.118.88 -P 6379 -c 100 -n 10000
##向主机发送100哥并发连接和10000哥请求测试性能

[root@localhost utils]# redis-benchmark -h 192.168.118.88 -p 6379 -q -d 10
##测试存取10字节的数据包性能
PING_INLINE: 925925.88 requests per second
PING_BULK: 1470588.12 requests per second
SET: 900900.88 requests per second
GET: 934579.44 requests per second
INCR: 1136363.62 requests per second
LPUSH: 578034.69 requests per second
RPUSH: 793650.75 requests per second
LPOP: 584795.31 requests per second
RPOP: 806451.62 requests per second
SADD: 840336.12 requests per second
HSET: 746268.62 requests per second
SPOP: 1098901.12 requests per second
LPUSH (needed to benchmark LRANGE): 671140.94 requests per second
LRANGE_100 (first 100 elements): 26089.22 requests per second
LRANGE_300 (first 300 elements): 5534.65 requests per second
LRANGE_500 (first 450 elements): 3414.37 requests per second
LRANGE_600 (first 600 elements): 2345.11 requests per second
MSET (10 keys): 120048.02 requests per second

[root@localhost utils]# redis-benchmark -t set,lpush -n 100000 -q
##测试本机Redis服务在进行set和lpush操作时的性能
SET: 166112.95 requests per second
LPUSH: 191570.88 requests per second

Redis数据库数据类型

每个数据类型的创建key和查看key值都是不同的

String数据类型

[root@redis utils]# redis-cli
127.0.0.1:6379> 

[root@redis utils]# redis-cli			#查看所有的键
127.0.0.1:6379>  keys *
1) "counter:__rand_int__"
2) "myset:__rand_int__"
3) "mylist"
4) "key:__rand_int__"
127.0.0.1:6379> keys m*					#查看以m开头所有键
1) "myset:__rand_int__"
2) "mylist"

创建数据,获取数据

127.0.0.1:6379> set whd zhangsan		#创建一个键whd,值为zhangsan
OK
127.0.0.1:6379> keys *					#查看创建结果
1) "counter:__rand_int__"
2) "myset:__rand_int__"
3) "mylist"
4) "key:__rand_int__"
5) "whd"
127.0.0.1:6379> get whd					#获取键值
"zhangsan"	

查看键是否存在

127.0.0.1:6379> exists whd				#存在返回1,不存在返回为0
(integer) 1
127.0.0.1:6379> exists www
(integer) 0

删除键

127.0.0.1:6379>  del whd
(integer) 1
127.0.0.1:6379> exists whd
(integer) 0

查看键中value的数据类型

127.0.0.1:6379> set aaa bbb
OK
127.0.0.1:6379> type aaa
string

对键重命名

127.0.0.1:6379> rename aaa ccc
OK
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "myset:__rand_int__"
3) "mylist"
4) "key:__rand_int__"
5) "ccc"

##rename也可用来覆盖键值

```bash
127.0.0.1:6379> get ccc
"bbb"
127.0.0.1:6379> set ddd fff				#新建键ddd,值为fff
OK
127.0.0.1:6379> rename ccc ddd			#将ccc值覆盖ddd
OK
127.0.0.1:6379> get ddd					#查看结果
"bbb"

##renamens,可以判断重命名的新键名是否存在,存在则返回0不做操作,不存在则覆盖并重命名
127.0.0.1:6379> set aaa bbb
OK
127.0.0.1:6379> renamenx ddd aaa
(integer) 0

查看当前数据库key的数目

127.0.0.1:6379> dbsize
(integer) 6

设置密码,删除密码

127.0.0.1:6379> config set requirepass 123123			#设置新密码
OK
127.0.0.1:6379> auth 123123								#认证密码
OK
127.0.0.1:6379> config get requirepass					#查看密码
1) "requirepass"
2) "123123"

[root@redis utils]# redis-cli -h 192.168.118.88 -p 6379		#此时可以登录数据库,但是不能进行操作
192.168.118.88:6379> keys *
(error) NOAUTH Authentication required.
192.168.118.88:6379> auth 123123						#进行密码认证后才能操作
OK
192.168.118.88:6379> keys *
1) "counter:__rand_int__"
2) "aaa"
3) "ddd"
4) "myset:__rand_int__"
5) "mylist"
6) "key:__rand_int__"

192.168.118.88:6379> config set requirepass ''			#删除密码
OK

追加数据

127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "aaa"
3) "ddd"
4) "myset:__rand_int__"
5) "mylist"
6) "key:__rand_int__"
7) "www"
127.0.0.1:6379> get www
"10"
127.0.0.1:6379> append www 20							#append,追加数值
(integer) 4
127.0.0.1:6379> get www
"1020"
127.0.0.1:6379> append whd 23							#如果键不存在,append命令相当于set创建键,并赋值
(integer) 2
127.0.0.1:6379> get whd
"23"
127.0.0.1:6379> strlen whd							  	#strlen判断键值得长度
(integer) 2

key值递增/递减,incr/decr/incrby/decrby

127.0.0.1:6379> get whd
"23"
127.0.0.1:6379> incr whd								#INCR递增数值(key值必须为整数)
(integer) 24
127.0.0.1:6379> incr whd
(integer) 25
127.0.0.1:6379> decr whd								#DECR递减数值(key值必须为整数)
(integer) 24
127.0.0.1:6379> decr whd
(integer) 23
127.0.0.1:6379> incrby whd 10							#按照指定数值进行递增
(integer) 33
127.0.0.1:6379> get whd
"33"
127.0.0.1:6379> decrby whd 5							#按照指定数值进行递减
(integer) 28
127.0.0.1:6379>

getset返回原有值然后给key设置新值

127.0.0.1:6379> getset whd 22				#先返回原有key值50,然后给予key新值22(新的值不会打印显示)
"50"
127.0.0.1:6379> get whd						#查看key新的值
"22"
127.0.0.1:6379> getset whd 66
"22"
127.0.0.1:6379> get whd
"66"

setex支持key的过期时间

127.0.0.1:6379> setex ttt 10 66								#指定ttt10秒过期
OK
127.0.0.1:6379> ttl ttt										#ttl可查看生命周期
(integer) 3
127.0.0.1:6379> ttl ttt										#查出-2表示已经过期,-1表示永久保存
(integer) -2
127.0.0.1:6379> get ttt
(nil)
127.0.0.1:6379> ttl whd
(integer) -1127.0.0.1:6379> setnx whd 22
(integer) 0

127.0.0.1:6379> setnx whd   22           #setnx可以对键进行判断,有则操作无效,无则创建
(integer) 0

批量创建,批量查看

127.0.0.1:6379> mset aa 10 bb 20 cc 30
OK
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "cc"
3) "myset:__rand_int__"
4) "whd"
5) "aa"
6) "key:__rand_int__"
7) "mylist"
8) "bb"
127.0.0.1:6379> mget aa bb cc
1) "10"
2) "20"
3) "30"
127.0.0.1:6379> msetnx aa 10 jj 10 dd 10					#msetnx可进行判断,只要有一个键存在,则操作失效,当键都不存在才创建key
(integer) 0
127.0.0.1:6379> msetnx jj 10 dd 10
(integer) 1

List数据类型

127.0.0.1:6379> lpush age a b c d e 						#lpush由左插入多个键值,
(integer) 5
127.0.0.1:6379> lrange age 0 -1
#lrange查看list数据类型的key值,后面要加查看的范围,这里0表示第一个数,-1表示最后一个数(也可以输入key值个数),
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> lrange age 1 2
1) "d"
2) "c"
127.0.0.1:6379> lrange age 3 5
1) "b"
2) "a"
127.0.0.1:6379> lpushx age g							#lpushx插入一个元素在一个已存在的key的开头
(integer) 6
127.0.0.1:6379> lrange age 0 -1
1) "g"
2) "e"
3) "d"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lpop age								#lpop移除首个元素
"g"
127.0.0.1:6379> lrange age 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> lpop age
"e"
127.0.0.1:6379> lrange age 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> llen age								#获取key值个数
(integer) 4

LREM/LSET/LINDEX/LTRIM

127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> lpush age a b c d d a c
(integer) 7
127.0.0.1:6379> lrange age 0 -1
1) "c"
2) "a"
3) "d"
4) "d"
5) "c"
6) "b"
7) "a"
127.0.0.1:6379> lrem age 1 a						#指定删除从开头开始n个重复值
(integer) 1
127.0.0.1:6379> lrange age 0 -1
1) "c"
2) "d"
3) "d"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lrem age 2 c
(integer) 2
127.0.0.1:6379> lrange age 0 -1
1) "d"
2) "d"
3) "b"
4) "a"
127.0.0.1:6379> lindex age 1						#获取索引值对应的key值,索引值从上往下从0开始
"d"
127.0.0.1:6379> lindex age 3
"a"
127.0.0.1:6379> lset age 1 a						#基于已有的索引值更换key值
OK
127.0.0.1:6379> lset age 3 c
OK
127.0.0.1:6379> lrange age 0 -1
1) "d"
2) "a"
3) "b"
4) "c"

127.0.0.1:6379> lrange whd1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "c"
6) "b"
7) "b"
127.0.0.1:6379> ltrim whd1 0 3						#仅保留索引范围的元素
OK
127.0.0.1:6379> lrange whd1  0 -1
1) "a"
2) "b"
3) "c"
4) "d"

在指定元素的左/右插入元素

127.0.0.1:6379> linsert whd1 before a a1				#在a的前面插入元素a1
(integer) 5
127.0.0.1:6379> lrange whd1 0 -1
1) "a1"
2) "a"
3) "b"
4) "c"
5) "d"
127.0.0.1:6379> linsert whd1 after a a2					#在a的后面插入元素a2
(integer) 6
127.0.0.1:6379> lrange whd1 0 -1
1) "a1"
2) "a"
3) "a2"
4) "b"
5) "c"
6) "d"

由右插入元素

127.0.0.1:6379> rpush whd2 a b c d e
(integer) 5
127.0.0.1:6379> lrange whd2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> rpushx whd2 a1								#在最后插入元素
(integer) 6
127.0.0.1:6379> lrange whd2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "a1"
127.0.0.1:6379> rpop whd2									#移除最后一个元素
"a1"
127.0.0.1:6379> lrange whd2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> rpoplpush whd2 whd2				#组合使用,右弹出左插入,相当于把原key值最后一个元素插入到目标key值得最前面
"e"
127.0.0.1:6379> lrange whd2 0 -1
1) "e"
2) "a"
3) "b"
4) "c"
5) "d"
127.0.0.1:6379> rpoplpush whd2 whd1
"d"
127.0.0.1:6379> lrange whd1 0 -1
1) "d"
2) "a1"
3) "a"
4) "a2"
5) "b"
6) "c"
7) "d"

Hash(散列)数据类型

hash用于存储对象,可以采用hash格式(对象列别和ID)构成键名

127.0.0.1:6379> hset caiwu name "lisi"			#创建键,设置字段为name,值为lisi
(integer) 1
127.0.0.1:6379> hget caiwu name
"lisi"
127.0.0.1:6379> hset caiwu name "wangwu"		#为该键添加字段name1,值为wangwu
(integer) 0
127.0.0.1:6379> hset caiwu name1 "wangwu"
(integer) 1
127.0.0.1:6379> hexists caiwu name				#判断caiwu键中name字段是否存在
(integer) 1
127.0.0.1:6379> hlen caiwu						#查看key值里面右多少个字段
(integer) 2
127.0.0.1:6379> hdel caiwu name					#删除字段
(integer) 1
127.0.0.1:6379> hexists caiwu name
(integer) 0
127.0.0.1:6379> hsetnx caiwu name "aa"			#添加字段
(integer) 1
127.0.0.1:6379> hget caiwu name
"aa"
127.0.0.1:6379> hset caiwu name2 2
(integer) 1
127.0.0.1:6379> hincrby caiwu name2 2			#递增字段值
(integer) 4
127.0.0.1:6379> hincrby caiwu name2 -2			#递减字段值
(integer) 2
127.0.0.1:6379> hgetall caiwu					#查看key中所有信息
1) "name1"
2) "wangwu"
3) "name"
4) "aa"
5) "name2"
6) "2"
127.0.0.1:6379> hmget caiwu name name1			#查看key的多个字段值
1) "aa"
2) "wangwu"
127.0.0.1:6379> hkeys caiwu						#查看键的多个字段
1) "name1"
2) "name"
3) "name2"
127.0.0.1:6379> hvals caiwu						#查看键中所有的字段值
1) "wangwu"
2) "aa"
3) "2"

set数据类型(无序集合)

元素具有唯一性,不允许存在重复的成员,多个集合类型之间可以进行并集、交集和差集运算

127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "myset:__rand_int__"
3) "key:__rand_int__"
4) "mylist"
5) "caiwu"
127.0.0.1:6379> sadd whd a b c d					#添加键,设置键值
(integer) 4
127.0.0.1:6379> smembers whd						#查看键值
1) "a"
2) "c"
3) "b"
4) "d"
127.0.0.1:6379> scard whd							#查看key值个数
(integer) 4
127.0.0.1:6379> sismember whd a						#判断key值是否存在,存在则返回1,不存在则返回0
(integer) 1
127.0.0.1:6379> sismember whd g
(integer) 0
127.0.0.1:6379> srandmember whd						#srandmember表示随机返回一个成员
"b"
127.0.0.1:6379> srandmember whd
"a"

随机移除键值

127.0.0.1:6379> spop whd		#随机移除数值,后面不加参数则默认移除一个,可以添加数值,表示移除该数值个数的元素
"a"
127.0.0.1:6379> smembers whd
1) "c"
2) "b"
3) "d"
127.0.0.1:6379> spop whd 2
1) "d"
2) "b"
127.0.0.1:6379> smembers whd
1) "c"
127.0.0.1:6379>  sadd whd a b e f					#添加元素,有重复值不会插入
(integer) 4
127.0.0.1:6379> smembers whd
1) "a"
2) "e"
3) "b"
4) "c"
5) "f"
127.0.0.1:6379> srem whd a e b						#移除指定元素
(integer) 3
127.0.0.1:6379> smembers whd
1) "f"
2) "c"
127.0.0.1:6379> sadd whd1 a b						#设置新键
(integer) 2
127.0.0.1:6379> smove whd whd1 c					#讲whd中的c移动到whd1中
(integer) 1
127.0.0.1:6379> smembers whd
1) "f"
127.0.0.1:6379> smembers whd1
1) "a"
2) "c"
3) "b"

Sorted Set 数据类型(有序集合)

元素类型为String,元素具有唯一性,不能重复,每个元素都会关联一个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同,可以用于在线游戏的积分排行榜

127.0.0.1:6379> zadd whd 1 "zhansan"				#添加一个数值为1的成员zhansan
(integer) 1
127.0.0.1:6379> zadd whd 2 "lisi" 3 "wangwu"		#添加两个成员,对应数值为2,3
(integer) 2
127.0.0.1:6379> zrange whd 0 -1						#查看whd的各元素值
1) "zhansan"
2) "lisi"
3) "wangwu"
127.0.0.1:6379> zrange whd 0 -1 WITHSCORES			#WITHSCORES表示返回的结果中包含每个成员及其分数,否则返回成员
1) "zhansan"
2) "1"
3) "lisi"
4) "2"
5) "wangwu"
6) "3"
127.0.0.1:6379>  zrank whd "zhansan"				#获取成员对应的位置索引,0代表第一个,nil表示不存在
(integer) 0
127.0.0.1:6379>  zrank whd "lisi"
(integer) 1
127.0.0.1:6379> zcard whd							#查看成员数
(integer) 3
127.0.0.1:6379> zcount whd 2 3						#分数满足表达式2<= score <=3的成员数量
(integer) 2
127.0.0.1:6379> zcount whd 1 2
(integer) 2
127.0.0.1:6379> zrem whd lisi						#删除指定成员
(integer) 1
127.0.0.1:6379> zrange whd 0 -1
1) "zhansan"
2) "wangwu"
127.0.0.1:6379> zscore whd zhansan					#返回成员所对应的分数
"1"
127.0.0.1:6379> zrange whd 0 -1 WITHSCORES
1) "zhansan"
2) "1"
3) "wangwu"
4) "3"
127.0.0.1:6379> zincrby whd 5 zhansan				#为成员的分数增加指定值
"6"
127.0.0.1:6379> zrange whd 0 -1 WITHSCORES
1) "wangwu"
2) "3"
3) "zhansan"
4) "6"
127.0.0.1:6379> zadd whd 2 zhansan			#添加已有成员设置分数时,会覆盖原因成员和分数,并返回为0.表示没有增加元素,但不表示没有修改
(integer) 0
127.0.0.1:6379> zrange whd 0 -1 WITHSCORES
1) "zhansan"
2) "2"
3) "wangwu"
4) "3"
127.0.0.1:6379> zrangebyscore whd 1 2		#获取分数满足1<=score<=2的成员
1) "zhansan"
2) "lisi"

127.0.0.1:6379> zrange whd 0 -1
1) "lisi"
2) "zhansan"
3) "xuyi"
4) "wangwu"
127.0.0.1:6379> zrangebyscore whd -inf +inf limit 1 3
#-inf表示第一个成员,+inf表示最后一个成员,这里表示匹配所有成员,然后limit显示索引1后面的三个成员
1) "zhansan"
2) "xuyi"
3) "wangwu"
127.0.0.1:6379> zremrangebyrank whd 0 1		#删除位置索引满足表达式0<=rank<=1的元素
(integer) 2
127.0.0.1:6379> zcard whd
(integer) 2
127.0.0.1:6379> zrange whd 0 -1
1) "xuyi"
2) "wangwu"

排序

127.0.0.1:6379> zadd whd1 1 a 2 b 3 d 4 e
(integer) 4
127.0.0.1:6379> zrevrange whd 0 -1 withscores
1) "wangwu"
2) "3"
3) "xuyi"
4) "2"
127.0.0.1:6379> zrevrange whd1 0 -1 withscores			#以位置索引从高到低显示区间的值
1) "e"
2) "4"
3) "d"
4) "3"
5) "b"
6) "2"
7) "a"
8) "1"

到此这篇关于Redis数据库安装部署及基本操作的文章就介绍到这了,更多相关Redis安装部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,Redis支持各种不同方式的排序. 和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到

  • linux环境部署及docker安装redis的方法

    安装步骤 1. 安装Redis 通过docker search redis和docker pull redis下载redis镜像 2. 新建挂载配置文件夹 新建data和conf两个文件夹,位置随意. mkdir -p /root/docker/redis/data mkdir -p /root/docker/redis/conf 注:因为 redis 默认配置你会发现只能够本地连接,不能进行远程访问,使用 Redis Desktop Manager连接都会报错,因此需要手动挂载 redis 配

  • scrapy-redis的安装部署步骤讲解

    先说下自己的环境,redis是部署在centos上的,爬虫运行在windows上, 1. 安装redis yum install -y redis 2. 修改配置文件 vi /etc/redis.conf 将 protected-mode no解注释,否则的话,在不设置密码情况下远程无法连接redis 3. 重启redis systemctl restart redis 4. 关闭防火墙 systemctl stop firewalld.service 5. 开始创建scrapy-redis的相

  • Redis基本知识、安装、部署、配置笔记

    基本知识 1.Redis的数据类型: 字符串.列表(lists).集合(sets).有序集合(sorts sets).哈希表(hashs) 2.Redis和memcache相比的独特之处: (1)redis可以用来做存储(storge).而memcache是来做缓存(cache).这个特点主要是因为其有"持久化"功能 (2)存储的数据有"结构",对于memcache来说,存储的数据,只有一种类型--"字符串",而redis则可以存储字符串.链表.

  • 详解在Redis在Centos7上的安装部署

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器. Redis的所有数据都是保存在内存中(效率高),然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为&

  • Redis数据库安装部署及基本操作详解

    Redis数据库概述 Redis是一个开源的.使用c语言编写NoSQL数据库,它是基于内存运行并支持持久化,采用key-value(键值对)的存储形式, 是目前分布式结构中不可或缺的 Redis相比于其他数据库的优点 具有极高的数据读写速度:读(110000次/s),写(81000次/s) 支持丰富的数据类型:支持key-value.strings.Lists.Hashes(散列值).Sets等数据类型操作 支持数据持久化:可以将内存中的数据保存在磁盘中 Redis所有操作都是具有原子性的 Re

  • VirtualBox软件下载安装及Linux环境安装部署图文教程详解

    一.VirtualBox软件下载及安装 首先进入VirtualBox官方网站进行软件下载, https://www.virtualbox.org/,目前VirtualBox最新的版本为6.1,详细如下图: 点击"Downloads"按钮,即跳转自"VirtualBox 6.1.4 platform packages"下载页面 选择"Windows hosts",即进行VirtualBox软件下载 双击"VirtualBox-6.1.4-

  • MySQL8数据库安装及SQL语句详解

    目录 MySQL8数据库安装 一.Windows 环境下安装 A.下载 MySQL B.解压并配置MySQL环境变量 C.在解压根目录创建my.ini配置文件 D.安装 MySQL (以下操作必须是管理员身份) E.登录.修改密码 二.Linux 环境下安装 A.下载 MySQL B.把下载的 MySQL 压缩包上传到 Linux 服务器 C.解压mysql-8.0.22.tar.gz D.把解压后的文件移动到 /usr/local 目录下 E.添加MySQL组合用户 (默认会添加,没有添加就手

  • Redis数据库的安装和配置教程详解

    目录 1.Redis安装 1.1.Linux环境安装Redis 1.2.Windows环境安装Redis 2.2.安装Redis图形客户端 2.3.Redis持久化简述 3.Redis配置参数 1.Redis安装 1.1.Linux环境安装Redis step-1:下载Redis 进入官网找到下载地址https://redis.io/download wget https://github.com/redis/redis/archive/7.0.0.tar.gz step-2:解包 tar -z

  • MongoDB数据库安装配置、基本操作实例详解

    本文实例讲述了MongoDB数据库安装配置.基本操作.分享给大家供大家参考,具体如下: 1.简介 NO SQL:NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是对不同于传统的关系数据库管理系统(RDBMS)的统称.NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. RDBMS NOSQL - 高度组织化结构化数据 - 结构化查询语言(SQL) - 数据和关系都存储在单独的表中. - 数据操纵语言,数据定

  • ubuntu 16.04安装redis的两种方式教程详解(apt和编译方式)

    ubuntu 16.04安装redis的两种方式教程如下所示: 方式一 :apt安装 在 Ubuntu 系统安装 Redi 可以使用以下命令: $sudo apt-get update $sudo apt-get install redis-server 启动 Redis $ redis-server 查看 redis 是否启动? $ redis-cli 以上命令将打开以下终端: redis 127.0.0.1:6379> 127.0.0.1 是本机 IP ,6379 是 redis 服务端口.

  • docker安装redis并以配置文件方式启动详解

    更新 最近发现服务器被挖矿病毒入侵了 很有可能是因为redis没有设置密码的原因! 1.获取redis镜像 docker pull redis 指定版本号: docker pull redis:4.0.9 不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源 2.查看本地镜像 docker images 3.然后启动容器,做映射 ①创建配置文件目录存放redis.conf,文件从官网下载. ②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改 mkdi

  • mayfly-go部署和使用详解

    目录 一,mayfly-go介绍: 二,mayfly-go部署 三,mayfly-go操作使用: 四,mayfly-go一键部署脚本包. 一,mayfly-go介绍: 简单基于DDD(领域驱动设计)分层架构实现的web版 linux.数据库      (mysql).redis.mongo统一管理操作平台. 相关链接:https://gitee.com/objs/mayfly-go 二,mayfly-go部署 [此处部署基于CentOS7.4部署] 1,部署依赖组件MySQL. 1,)删除系统自

  • Linux Docker安装wordpress的方法详解教程

    安装mysql服务 下载mysql镜像: docker pull mysql 创建mysql容器并后台运行,指定数据库密码是123456.-e指定环境变量. docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -d mysql 使用官方的wordpress wordpress镜像daocloud.io: docker pull daocloud.io/daocloud/dao-wordpress:latest 拉取镜像前请先登录: d

  • IntelliJ Idea SpringBoot 数据库增删改查实例详解

    SpringBoot 是 SpringMVC 的升级,对于编码.配置.部署和监控,更加简单 微服务 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务.一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议. Spring 为 微服务提供了一整套的组件-SpringClound , SpirngBoot 就是该基础. 第一个SpringBoot程序 这里使用的开发软件是IntelliJ Idea,和Eclipse

随机推荐