Redis
Redis是啥
Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件。
CentOS 7 安装
下载之后上传到服务器
解压
tar -zxvf redis-6.0.6.tar.gz
解压之后出现redis-6.0.6文件夹,我改成了redis6,
进入redis6:cd redis6
,编译:make
在进行make时,如果报错了,可以执行以下操作:
1、安装gcc套装(如果是新系统gcc通常安装不全面)
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
2、升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
3.redis客户端测试
redis-cli -p 6379
启动redis服务端
-
redis启动
打开src,./redis-server
-
redis后台启动
打开src,./redis-server &
- 查看 redis 是否启动?
打开src, redis-cli
- 关闭redis
shutdown
,之后
基本操作
字符串(string)、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)
-
String字符串
- string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
- string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
- string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
插入一条数据:set age 22
获取一条数据:get age
在获取一条int类型的数据之前先加一:incr age------>23,操作的对象虽然为String格式但是可以转化为int类型
获取旧值并更改为新值:
- List
在Redis中list的底层实现是链表,所以在两边插入的效率比较高,随机读取的效率较低。
list的常用操作有LPUSH,RPUSH,LRANGE等。
- LPUSH:从左侧插入一条数据
- RPUSH:从右侧插入一条数据
- LRANGE:获取某一范围内的数据
- Set集合
Redis中的集合是一种无序集合,集合中的元素没有先后顺序
- 向集合中添加元素
- 列出集合中的所有元素
- 判断元素是否在列表中,有的话返回1,没有的话返回0
- 新建一个新的集合,并把两个集合合并
从上面的结果可以看到,合并只是输出两个合集的所有元素,而且重复的元素会被过滤掉。
- 有序集合(sorted sets)
很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等
- 新添加一条数据:
- 列出集合中的所有数据,同时列出他的序号
- 只列出所有数据
- Hash哈希
Redis Hash是一个键值对集合
Redis Hash是一个string类型的 field和value的映射表,hash特别适合存储对象
-
建立哈希,并赋值
-
列出哈希的所有信息
-
更改哈希中的某一个值
hset:更改一个值,hmset:更改一个或者多个值
经测试,set key会覆盖之前hmset存入的值,而hmset不会覆盖set
Redis的持久化
1. RDB
RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;
2. AOF
AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。
其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,则会优先采用AOF方式来进行数据恢复,这是因为AOF方式的数据恢复完整度更高。
参考文章:https://blog.csdn.net/liqingtx/article/details/60330555
本文来自博客园,作者:两小无猜,转载请注明原文链接:https://www.cnblogs.com/charlottepl/p/13500989.html