非关系型数据库---Redis

  • 开源(BSD协议)使用C语言编写,基于内存存储,支持持久化,高性能key-value的NoSQL数据库
  • 支持数据结构类型丰富,字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。
  • 支持丰富的主流语言的客户端,C ,C++ ,python,Erlang, C# ,R,java,PHP,Go等
  • 用途:缓存,数据库,消息中间件
  • 官方网站:https://redis.io/


Redis-5.0.0

Redis 安装

第一步:下载安装包并解压

wget http://download.redis.io/releases/redis-5.0.0.tar.gz

tar -zxvf redis-5.0.0.tar.gz

第二步:下载编译安装的依赖gcc gcc-c++

yum install gcc gcc-c++ -y

第三步:编译安装

cd redis-5.0.0 
make
cp src/redis-server /usr/bin/
cp src/redis-cli /usr/bin/

任意路径下使用命令

cp src/redis-server /usr/bin/ 
cp src/redis-cli /usr/bin/

redis配置文件参数:

bind 127.0.0.1					#对外提供链接的地址
port 6379					#默认端口号
daemonize no					#守护进程(如果是yes后台运行)
databases 16					#(redis数据库用0,1,2,3....代表)
save 900 1					#每900秒有1次增删改操作就同步到磁盘当中
dbfilename dump.rdb				#rdb备份方式的文件名字(默认开启)
dir ./						#备份文件存放位置
appendonly no					#aof备份是否开启(默认不开启)
appendfilename "appendonly.aof"			#aof备份文件名称
appendfsync everysec				#aof同步机制,每秒同步到磁盘当中

启动redis

第一步:修改配置文件(守护进程,后台运行释放终端)

╭─root@localhost.localdomain ~/redis-5.0.0  
╰─➤  vim redis.conf 
...
daemonize yes
...

第二步:启动命令:

╭─root@localhost.localdomain ~/redis-5.0.0  
╰─➤ redis-server redis.conf

第三步:连接redis-server

redis-cli -p 6379 -h 127.0.0.1

简单操作

切换数据库:

select 2

字符串

作用 内容 实例
添加: set key value set username balabala
删除: del key del username
设置过期时间 set key value EX timeout setex key timeout value
查看过期时间 ttl key ttl username
查看当前redis所有的key keys *

列表

作用 内容
在列表左边添加元素: lpush key value
在列表右边添加元素: rpush key value
查看列表中的元素: lrange key start stop
移除并返回列表key的头元素: lpop key
移除并返回列表的尾元素: rpop key
指定返回第几个元素: lindex key index
获取列表中的元素个数: llen key
删除指定的元素: lrem key count value

集合

作用 内容 实例
添加元素: sadd set value1 value2.... sadd team xiaotuo datuo
查看元素: smembeers set smembers team
移除元素: srem set member... srem team xiaotuo datuo
查看集合中的元素个数: scard set scard team1
获取多个集合的交集: sinter set1 set2 sinter team1 team2
获取多个集合的并集: sunion set1 set2 sunion team1 team2
获取多个集合的差集: sdiff set1 set2 sdiff team1 team2

哈希

作用 内容 实例
添加一个新值: hset key field value hset website baidu baidu.com
获取哈希中的field对应的值: hget key field hget website baidu
删除field中的某个field: hdel key field hdel website baidu
获取某个哈希中所有的field和value: hgetall key hgetall website
获取某个哈希中所有的field: hkeys key hkeys website
获取某个哈希中所有的值: hvals key hvals website
判断哈希中是否存在某个field: hexists key field hexists website baidu
获取哈希中总共的键值对: hlen field hlen website

事物操作:

Redis事务可以一次执行多个命令,事务具有以下特征:

事务 内容
隔离操作 事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰。
原子操作 事务中的命令要么全部被执行,要么全部都不执行。
开启一个事务 multi
提交事务 exec
回滚事务 discard

原文地址:https://www.cnblogs.com/du-z/p/11179413.html