安装redis
下面介绍编译安装redis,编译安装可以在编译时优化和调试一些选项,而且可以自定义安装位置(以下均在centos环境下操作)
获取安装包:
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解压到当前目录:
tar zxvf redis-5.0.5.tar.gz
cd redis-5.0.5/
将配置文件移动到创建好的目录中:
mkdir -p /redis/conf
cp redis.conf /redis/conf/
开始编译依赖项:
cd deps/
make hiredis lua jemalloc linenoise
如果出现缺少gcc则:
yum -y update gcc
yum -y install gcc+ gcc-c++
编译redis
cd …
make
make PREFIX=/redis install
cp -R /redis/bin/. /usr/local/bin/
测试是否成功:
which redis-server #查看路径
redis-server #启动redis
macOS和Linux安装差不多
一些常用命令
守护进程启动redis:
将 /redis/conf/redis.conf 中的diamonize改为yes,没有则加上diamonize yes
redis-server /redis/conf/redis.conf
关闭redis:
redis-cli
127.0.0.1:6379> shutdown
清空redis数据:
redis-cli
127.0.0.1:6379> flushall
连接到指定服务器的redis实例:
redis-cli -h 主机名/IP地址 -p 端口(不加-p默认6379) -a 密码
获取服务器信息,通常可以用来构建redis监控应用:
redis-cli
127.0.0.1:6379> info #获取服务器所有信息
127.0.0.1:6379> info memory #大致的内存消耗指标
127.0.0.1:6379> info server #关于redis服务器的基本信息
127.0.0.1:6379> info clients #客户端连接的状态和指标
127.0.0.1:6379> info persistentce #数据持久化相关的状态和指标
127.0.0.1:6379> info stats #总体统计数据
127.0.0.1:6379> info replication #主从复制相关的状态和指标
127.0.0.1:6379> info cpu #CPU使用情况
127.0.0.1:6379> info cluster #Redis Cluster的状态
127.0.0.1:6379> info keyspace #数据库相关的统计数据
redis参数设置:
redis-cli
127.0.0.1:6379> config get 参数名
127.0.0.1:6379> config set 参数名 参数值
数据处理命令:
命令 | 说明 |
---|---|
get, set, strlen, exist, append | |
setrange | 从指定偏移量起,覆盖之后的字符串 |
setnx | nx选项表示存在值则不覆盖 |
mset, mget | 批量设置和获取 |
lpush, rpush ,lrange, linsert, lindex, lpop, rpop, ltrim, lrange, lset | 维护链表相关命令 |
blpop, brpop | 链表弹出元素的阻塞版(链表为空时,所有的阻塞操作将会按序进入阻塞队列中) |
hset, hget, hsetnx, hmset, hmget, hexists, hgetall, hset, hdel | 处理哈希类型数据 |
scan, hscan, sscan, zscan | 增量迭代遍历集合元素 |
sadd, sismember, srem, scard, smembers | 处理集合元素 |
sunion, sunionstore, sinter, sinterstore | 集合的并集和交集 |
zadd nx, zrevrange, zincrby, zrevrank, zscore, zunionstore, zinterstore | 处理有序集合 |
pfadd, pfcount, pfmerge | 处理HLL数据类型(使用固定数量的内存对大量基数进行计数) |
geoadd, geopos, georadius, geodist, georadiusbymember | 处理地理位置相关数据类型 |
dbsize, keys, scan, exists, type, rename | 键管理的操作 |
del, unlink | del删除键可能会因元素数据量太大产生服务器延迟,unlink会在另一个线程而不是主事件线程中执行删除操作,不会发生阻塞 |
dump, restore | 序列化和反序列化 |
sort | 对无序集合或列表进行排序,对有序集合以另一种方式排序 |
redis与memcached相比,其支持丰富的数据类型:字符串,列表,哈希,集合,有序集合,HyperLogLog(HLL,常用于大量数据下的集合计数),GEO(地理位置处理API)等。
对于列表,哈希,集合,不需要在添加数据前初始化,且为空时redis也会自动将其删除。
还有一个比较特殊的数据结构位图,假设每个用户都有一个唯一递增的ID,我们使用位图来存储用户是否使用过某个功能的标志位。
生成redis测试数据
python安装
网址:https://www.python.org/downloads/release/python-373/
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar -zxvf Python-3.7.3.tgz
./configure —prefix=/usr/local/python3
make && make install
vim ~/.bash_profile
PATH=$PATH:$HOME/bin改为PATH=$PATH:$HOME/bin:/usr/local/python/bin
source ~/.bash_profile
pip安装
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
用fake2db导入测试数据
pip install redis fake2db
fake2db --rows 10000 --db redis
python安装其他问题
更改系统默认python版本为此次安装版本
ln -s /usr/local/python/bin/python3.5 /usr/bin/python
更改系统默认python版本yum出现问题解决
vim /usr/bin/yum
头部 #!/usr/bin/python 改为 #!/usr/bin/python3.7
还有问题的话
vim /usr/libexec/urlgrabber-ext-down
头部 #!/usr/bin/python 改为 #!/usr/bin/python2.7