centos redis make 报错_redis的几个操作,还有谁不知道的?

612eae70bddb807e73cf17741f0c5b65.png

redis是什么:

  • Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
  • redis是开源,BSD许可,高级的key-value存储系统。
  • 可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务。

安装

wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf redis-5.0.4.tar.gzcd redis-5.0.4make

缺少make包, 则需要通过 sudo apt-get install make 安装

make报错 /bin/sh: cc: command not found 缺少gcc包, 通过 sudo apt-get install gcc

如果报错 fatal error: jemalloc/jemalloc.h: No such file or directory 则使用 make MALLOC=libc 编译

可以使用命令 make test 测试. 报错 You need tcl 8.5 or newer in order to run the Redis test 则需要安装tcl包.

安装方法如下:

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ cd /usr/local/tcl8.6.1/unix/ sudo ./configure sudo make sudo make install

安装完成后运行 make test 命令成功。

  1. 需要安装到指定目录, 则可以使用 make install PREFIX=/mnt/d/redis 注意添加配置文件
ac61aa6408376bca2acfce3893a18402.gif

我的同事们

启动命令

  1. 启动 sh /redis-server ../conf/redis.conf
  2. 以后台进程的方式启动需要修改 redis.conf 文件的 daemonize=yes
  3. 客户端连接 sh /redis-cli -h 192.168.1.123 -p 6379

配置文件中的 bind 用来绑定服务端的ip, 为了安全,默认不允许外网访问

默认保护模式 protect-mode=yes

多数据支持

默认支持16个数据库, databases=16 , 默认使用的是DB 0 . redis数据库不支持自定义名称, 且不能单独做授权, 各个数据库之间并非完全隔离. flushall 命令可以清空redis中所有的数据.

select 3 转到索引为3的数据库

使用命令

  1. keys prifix* 查找到所有开头为prifix的键, pattern 可以使用[? * [] ]匹配
  2. EXISTS key 是否存key
  3. type key 获取数据结构

字符类型

key的最大存储为512M.

  1. set key value 比较重要的 setnx
  2. get key
  3. incr key 递增值 incrby key [step] 递增指定的step
  4. strlen key 获得长度
  5. mget key1 key2 key3 批量获取多个key的值
  6. set key1 value1 key2 value2 批量设置多个键值

key的设计可以参看阿里的规范, 例如 业务名:表名:id

列表类型

  1. lpush key value 左边push数据,对应的是 rpush
  2. lpop key 获取数据, 同时数据被移除,对应的是 rpop
  3. llen key 列表长度
  4. lrange key start stop 获取片段, start=-1 表示从头,stop=-1表示到结尾
  5. lrem key count value 删除
  6. lset key index value 设置索引的值

散列类型

不支持数据类型嵌套, 比如hash中存储一个list.

hset key field valuehget key fieldhmset key field1 value1 field2 value2hmget key field1 field2hgetall keyhexists key fieldhincrybyhsetnxhdel key field

集合类型

和list相比, 不能有重复元素, 且是无序的

sadd key member...smembers keysdiff key1 key2sunion key1 key2

有序集合

zadd key score memberzrange key start stop withscores

可以用来做排名统计

733943268bb7b61e5446a55ce4a7a3fb.png

请下命令

redis的事务

比较鸡肋, 不建议使用, 有时候不能回滚

multi 开启事务;

set get... 等操作为具体的事务操作

exec 提交事务

过期时间

expire key timeout 设置超时时间

ttl key 获得key过期时间

发布订阅

publish channel message

subscribe channel

分布式锁

可使用 setnx 实现

关注作者

如果你也对Java架构比如分布式、微服务、源码分析、性能优化、高并发高可用等技术感兴趣可以在手机上面私信我,回复「架构」二字即可免费领取一套价值3880的架构资料哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值